#include<stdio.h>
#include<stdlib.h>
typedef struct DNode
{
int data;
struct DNode *next,*last; //双链表每个节点带有指向下一个节点和上一个节点的指针
}DNode;
DNode *Create();
DNode *Insert_Tail(DNode *D);
void View_AllData(DNode *D);
void View_OneData(DNode *D);
void Delete_OneData(DNode *D); //按位删除
void valueLocation(DNode *D); //按值删除
void Insert_Data_QianCha(DNode *D); //前插法
void Insert_Data_HouCha(DNode *D); //后插法
int location();
int main()
{
DNode *D = Create(); //创建双链表头结点
D = Insert_Tail(D); //尾插法插入数据
View_AllData(D); //遍历所有数据
View_OneData(D); //按位指定查找
valueLocation(D); //按值查找
Delete_OneData(D); //按位指定删除
View_AllData(D);
Insert_Data_QianCha(D); //前插法向列表中插入数据
Insert_Data_HouCha(D); //后插法向列表插入数据
View_AllData(D);
return 0;
}
//创建结点
DNode *Create()
{
DNode *D = (DNode*)malloc(sizeof(DNode)); //动态申请内存
if(D == NULL) //判断是否成功
printf("申请结点失败!\n"
【C语言】带头结点双链表-基本操作
最新推荐文章于 2024-03-06 21:01:26 发布