求链表的表长
先定义一个计数器count和指针L(用于指向下一个结点),先将指针指向头结点,用L==NULL判断链表是否为空链表,若为空链表则返回count为0,否则通过while循环进行计数,直到L->Next=NULL,表示为链表尾结点,最后返回count.
int Length( List L ){ //List 定义一个指针
int count=1;
if(L==NULL)
return 0;
while(L->Next){
count++;
L=L->Next;
}
return count;
}
链式表的按序查找
查找链式表里的第K个元素,定义一个计数器count,再定义一个指针P(用于指向下一个结点),首先判断K的值,若K<=
0,则返回ERROR,并判断链表是否为空链表(PNULL),若为空链表也返回ERROR,通过while 进行查找,循环条件为count<k&&P!=NULL,循环结束,判断退出循环的条件是否为PNULL,若是,则返回ERROR,说明该元素不存在,若不是,说明已找到该元素,并返回P->Data。(写的时候,没看清K是大写,导致一直编译不通过-_-)
ElementType FindKth( List L, int K ){ //ElementType为int型,List定义一个指针
int count =1;
List p=L;
if(K<=0||p==NULL){
return ERROR;
}
while(count<K&&p!=NULL){
count++;
p=p->Next;
}
if(p==NULL)
return ERROR;
else
return p->Data;
}