欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

头插法、尾插法建立单链表

发布时间:2023/12/31 编程问答 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 头插法、尾插法建立单链表 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

头插法、尾插法建立单链表

#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; }

总结

以上是生活随笔为你收集整理的头插法、尾插法建立单链表的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。