用头插法和尾插法建立单链表(带头结点)
生活随笔
收集整理的這篇文章主要介紹了
用头插法和尾插法建立单链表(带头结点)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
尾插法建立單鏈表
LinkList List_TailInsert(LinkList &L)
{int x;L=(LinkList)malloc(sizeof(LNode));LNode *s,*r=L;//s為要插入的新節點的指針,r為尾指針scanf("%d",&x);while(x!=99)//當輸入99時代表鏈表構建完成{s=(LNode *)malloc(sizeof(LNode));s->data=x;r->next=s;r=s;scanf("%d,&x");}r->next=NULL;return L;
}
頭插法建立單鏈表
LinkList List_HeadInsert(LinkList &L)
{LNode *s;int x;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;scanf("%d",&x);while(x!=99){s=(LNode*)malloc(sizeof(LNode));s->data=x;s->next=L->next;L->next=s;scanf("%d",&x);}return L;
}
完整代碼以及遍歷結果
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{int data;struct LNode *next;
}LNode,*LinkList;
LinkList List_TailInsert(LinkList &L)
{int x;L=(LinkList)malloc(sizeof(LNode));LNode *s,*r=L;//s為要插入的新節點的指針,r為尾指針scanf("%d",&x);while(x!=99)//當輸入99時代表鏈表構建完成{s=(LNode *)malloc(sizeof(LNode));s->data=x;r->next=s;r=s;scanf("%d,&x");}r->next=NULL;return L;
}
LinkList List_HeadInsert(LinkList &L)
{LNode *s;int x;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;scanf("%d",&x);while(x!=99){s=(LNode*)malloc(sizeof(LNode));s->data=x;s->next=L->next;L->next=s;scanf("%d",&x);}return L;
}
void TraverseList(LinkList L)//遍歷鏈表
{LNode* p=L->next;while(NULL!=p){printf("%d ",p->data);p=p->next;}printf("\n");return;
}
int main()
{LinkList L=NULL;List_HeadInsert(L);//List_TailInsert(L);TraverseList(L);
}
頭插遍歷結果

尾插遍歷結果

總結
以上是生活随笔為你收集整理的用头插法和尾插法建立单链表(带头结点)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】从题库中随机抽取100道题生成试卷
- 下一篇: 白噪声检验python_使用python