devc 链表程序

链表是一种常用的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表可以用于实现各种数据结构和算法,例如栈、队列、哈希表等。

以下是一个简单的链表程序示例:

C

#include<stdio.h>typedefstructNode{intdata;structNode*next;}Node;//创建链表Node*createist(int*data,intn){Node*head=N;Node*p=N;inti;for(i=0;i<n;i++){Node*newNode=(Node*)malloc(sizeof(Node));newNode->data=data[i];newNode->next=N;if(head==N){head=newNode;}else{p->next=newNode;}p=newNode;}returnhead;}//遍历链表voidprintist(Node*head){Node*p=head;while(p!=N){printf("%d",p->data);p=p->next;}printf("\n");}//插入节点voidinsertNode(Node*head,intdata,intpos){Node*p=head;Node*newNode=(Node*)malloc(sizeof(Node));inti;newNode->data=data;newNode->next=N;if(pos==0){newNode->next=head;head=newNode;}else{for(i=0;i<pos-1;i++){p=p->next;}newNode->next=p->next;p->next=newNode;}}//删节点voiddeleteNode(Node*head,intpos){Node*p=head;Node*q=N;inti;if(pos==0){head=head->next;free(p);}else{for(i=0;i<pos-1;i++){p=p->next;}q=p->next;p->next=q->next;free(q);}}intmain(){intdata[]={1,2,3,4,5};Node*head=createist(data,5);printist(head);insertNode(head,6,2);printist(head);deleteNode(head,3);printist(head);return0;}

该程序首先定义一个Node结构,用于表示链表中的节点。然后定义三个函数:

  • createist():用于创建链表。
  • printist():用于遍历链表。
  • insertNode():用于插入节点。
  • deleteNode():用于删节点。

main()函数首先创建一个包含五个元素的链表。然后,它使用insertNode()函数在第二个位置插入一个新的节点。最后,它使用deleteNode()函数删第三个节点。

输出结果如下:

1234512