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;} secodewithcaution. content_copy 该程序首先定义一个Node结构,用于表示链表中的节点。然后定义三个函数: createist():用于创建链表。 printist():用于遍历链表。 insertNode():用于插入节点。 deleteNode():用于删节点。 main()函数首先创建一个包含五个元素的链表。然后,它使用insertNode()函数在第二个位置插入一个新的节点。最后,它使用deleteNode()函数删第三个节点。 输出结果如下: 1234512