LinkList CreateList_tail(LinkList& L)//尾插法{int x;
L =(LinkList)malloc(sizeof(LNode));//帶頭結點的鏈表
LNode* s;
LNode* r = L;scanf("%d",&x);while(x !=9999){
s =(LNode*)malloc(sizeof(LNode));
s->data = x;
s->next =NULL;
r->next = s;
r = s;scanf("%d",&x);}return L;}
返回鏈表長度
intLength_LinkList(LinkList L)//返回鏈表長度{int x =0;while(L->next !=NULL){
x++;
L = L->next;}return x;}
按位查找元素
LNode*GetElem(LinkList L,int i){int len =Length_LinkList(L);//鏈表長度if(i<1|| i>len){printf("鏈表無此區域!");}else{for(int n =1; n <= i; n++){
L = L->next;}}return L;}
按值查找元素
LNode*LocateElem(LinkList &L, ElemType e)//按值查找{
LNode* p = L->next;while(p !=NULL&& p->data != e)
p = p->next;return p;}
頭插法插入元素
bool ListFrontInsert(LinkList &L,int i, ElemType e){
LinkList p =GetElem(L, i -1);if(p ==NULL){return false;}
LinkList s =(LNode*)malloc(sizeof(LNode));
s->data = e;
s->next = p->next;
p->next = s;return true;}
刪除節點
bool ListDelete(LinkList &L,int i){
LinkList p =GetElem(L, i -1);if(p ==NULL){return false;}else{
LinkList q;
q = p->next;
p->next = q->next;free(q);return true;}}
打印鏈表
voidPrintList(LinkList L)//打印鏈表中每個節點的值{
L = L->next;printf("鏈表節點按次序打印爲:");while(L !=NULL){printf("%d ", L->data);
L = L->next;}printf("\n");}