这个自己找一个数据结构的书来看吧,一般前两三章都是这些~~~
以下代码后半部分是Locate(k,x)~~
template
class ChainNode {
friend Chain
p r i v a t e :
T data;
ChainNode
} ;
template
class Chain {
p u b l i c :
Chain() {first = 0;}
~ C h a i n ( ) ;
bool IsEmpty() const {return first == 0;}
int Length() const;
bool Locate(int k, T& x) const; //查找k个元素x
int Search(const T& x) const;
Chain
Chain
void Output(ostream& out) const;
p r i v a t e :
ChainNode
} ;
//
bool Chain
{// 寻找链表中的第k个元素,并将其传送至x
/ /如果不存在第k个元素,则返回f a l s e,否则返回t r u e
if (k < 1) return false;
ChainNode
int index = 1; // current的索引
while (index < k && current) {
current = current->link;
i n d e x + + ;
}
if (current) {x = current->data; return true;}
return false; // 不存在第k个元素
}
解:
int LocateElem_L(LinkList &L,ElemType x)
{
int i=0;
LinkList p=L;
while(p&&p->data!=x){
p=p->next;
i++;
}
if(!p) return 0;
else return i;
}