头插法、尾插法建立单链表
生活随笔
收集整理的這篇文章主要介紹了
头插法、尾插法建立单链表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
頭插法、尾插法建立單鏈表
#include<stdio.h> #include<stdlib.h> #define TRUE 1 #define FALSE 0 #define ERROR 0 #define OVERFLOW 0 #define OK 1 typedef int ElemType; typedef int Status; typedef struct LNode {ElemType data;//數據域struct LNode *next;//指針域 }LNode, *LinkList;LinkList CreateList_L_Tail(int n) {//尾插法建立單鏈表LinkList L;LNode *p, *r;L = (LinkList)malloc(sizeof(LNode));//創建頭結點r = L;//r始終指向尾節點,開始時指向頭結點for (int i = n; i > 0; i--){//循環建立數據節點p = (LinkList)malloc(sizeof(LNode));//生成新結點scanf_s("%d", &p->data);//創建數據節點*p,輸入元素的值r->next = p;//將*p插入到*r之后r = p;}r->next = NULL;return L; }LinkList CreateList_L_Head(int n) {LinkList L;LNode *p;L = (LinkList)malloc(sizeof(LNode));L->next = NULL;//創建頭節點,其next域置為NULLfor (int i = n; i > 0; --i)//循環建立數據節點{p = (LinkList)malloc(sizeof(LNode));scanf_s("%d", &p->data);//創建數據節點*p,輸入元素的值p->next = L->next;//將*p插在原開始節點之前,頭結點之后L->next = p;}return L; }void PrintList(LinkList L) {LNode* p;p = L->next;while (p != NULL){printf("%5d", p->data);p = p->next;}printf("\n"); }int main() {int n;LinkList L, S;printf("輸入要建立順序鏈表的元素個數:");scanf_s("%d", &n);printf("輸入順序鏈表的元素(尾插法創建單鏈表):");L = CreateList_L_Tail(n);printf("順序表中元素是:");PrintList(L);printf("輸入要建立順序鏈表的元素個數:");scanf_s("%d", &n);printf("輸入順序鏈表的元素(頭插法創建單鏈表):");S = CreateList_L_Head(n);printf("順序表中元素是:");PrintList(S);system("pause");return 0; }總結
以上是生活随笔為你收集整理的头插法、尾插法建立单链表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 地图四色着色算法_继陈景润之后
- 下一篇: Android与Javascript交互