#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
typedef int Status;
typedef int Elemtype;
//定义双向链表
//先搞个有头节点单链表
//双向链表要有两个指针域
typedef struct link{
link *prior;
link *next;
Elemtype data;
}link;
//初始化链表
//有头节点
link* initlink(){
//定义头结点
link *node = (link*)malloc(sizeof(link));
//给头节点赋值,单链表
node ->prior = NULL;
node ->next = NULL;
//临时用来遍历的指针
link* temp = node;
//给链表初始化5个有数据结点
for(int i =0;i<5;i++){
//定义新结点
link *newnode = (link*)malloc(sizeof(link));
//给新节点data赋值
newnode->data = i;
newnode->next=NULL; //attention!这里需要把next=NULL,否则printlink时,会检测到temp->next不为NULL,就会
双向链表的插入和删除
最新推荐文章于 2023-12-24 22:39:57 发布
本文介绍如何在C语言中实现双向链表的插入和删除操作。首先定义了双向链表的结构,然后通过`initlink`初始化链表,`printlink`打印链表,`insert`在指定位置插入元素,`delelem`删除指定位置的元素。代码示例展示了链表的创建、插入元素和删除元素的过程。
摘要由CSDN通过智能技术生成