这篇文章主要介绍了C语言如何编写一个链表,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。本文实例为大家分享了C语言编写一个链表的具体代码,具体内容如下链表具备的基本功能:1.创
这篇文章主要介绍了C语言如何编写一个链表,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
本文实例为大家分享了C语言编写一个链表的具体代码,具体内容如下
1.创建头链表
struct node* Creatlist(){//创建链表头 struct Node *headnode = (struct Node*)malloc(sizeof(struct Node));//创建动态内存链表,指针变量 headnode->next = NULL;//链表初始化 return headnode;}
2.创建节点
struct Node* Creatnode(int num){//创建结点,链表,参数数字域 struct Node* newnode = (struct Node*)malloc(sizeof(struct Node));//创建动态内存链表,指针变量 newnode->num = num; newnode->next = NULL;//链表初始化 return newnode;}
3.插入节点
void Insetlist(struct Node* list, int num){//头插法 struct Node* insetnode = Creatnode(num); if (list != NULL){ insetnode->next = list->next; list->next = insetnode; } else{ printf("节点不存在\n"); }}void Insetlists(struct Node* headnode, int n, int num){//在n节点处插入,参数头节点,在第n个节点处插,插入的数据num int i = 1; struct Node *t = headnode; while (i < n&& t!= NULL){ t = t->next; i++; } if (t != NULL){ struct Node* insetnode = Creatnode(num); insetnode->next = t->next; t->next = insetnode; } else{ printf("节点不存在\n"); }}
4.修改节点
void Modifynode(struct Node* headnode, int n){//修改节点,参数链表,修改的第n个节点 struct Node* list = headnode; int i = 0; while (i < n&&list != NULL){ list = list->next; i++; } if (list != NULL){ printf("请输入你要修改的值\n"); int j = 0; scanf("%d", &j); list->num = j; } else{ printf("节点不存在\n"); }}
5.删除节点
定义两个指针,一个指向删除节点的上一个节点,一个指向要删除的节点
void Deletnode(struct Node* headnode, int n){//删除第n个节点, int i = 1; struct Node *strat = headnode; struct Node *end = headnode->next; while (i < n&&end != NULL){ strat = strat->next; end = end->next; i++; } if (end != NULL){ strat->next = end->next; free(end); } else{ printf("节点不存在\n"); }}
6.打印节点
void Printnode(struct Node* headnode){//打印节点 struct Node* list = headnode; while ((list->next) != NULL){ list = list->next; printf("%d\t", list->num); } printf("\n");}
7.主函数
int main(){ struct Node* list = Creatlist(); Insetlists(list, 1, 1); Printnode(list); int i = 0; printf("请输入修改哪个节点\n"); scanf("%d", &i); Modifynode(list, i); Printnode(list); printf("请输入删除哪个节点\n"); int n = 0; scanf("%d", &n); Deletnode(list, n); Printnode(list); system("pause"); return 0;}
感谢你能够认真阅读完这篇文章,希望小编分享的“C语言如何编写一个链表”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网其他教程频道,更多相关知识等着你来学习!
--结束END--
本文标题: C语言如何编写一个链表
本文链接: https://www.lsjlt.com/news/278611.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0