c语言双向链表

简介:

typedef int ElemType;


typedef struct _Node

{

ElemType value;

struct _Node* pnext;

struct _Node* prev;

}node, *pNode;


//创建双向链表

pNode Create_Double_List(int count)

{

pNode pn = NULL;

pNode pb = NULL;


pNode phead = (pNode)malloc(sizeof(node));

printf("请输入第1个结点的值:");

scanf("%d", &phead->value);


if(count == 1)

{

phead->pnext = phead->prev = phead;

return phead;

}

else

{

int i = 0;

// phead->pnext = phead->prev = NULL;

pn = phead;

for(i = 1; i < count; ++i)

{

pb = (pNode)malloc(sizeof(node));

printf("请输入第%d个结点的值:", (i + 1));

scanf("%d", &pb->value);

pn->pnext = pb;

pb->prev = pn;

pn = pb;

}


pn->pnext = phead;

phead->prev = pn;

return phead;

}

}


//正序遍历

void Printf_Next_List_Value(pNode pnode)

{

int i = 0;

pNode pn = pnode;

printf("正序遍历的结果为:");

while(i < g_Count)

{

if(pn->pnext == pn)

{

printf("%3d ", pn->value);

}

if(pn->pnext != pn)

{

printf("%3d ", pn->value);

pn = pn->pnext;

}

i++;

}

printf("\n");

}



本文转自 Linux_woniu 51CTO博客,原文链接:http://blog.51cto.com/linuxcgi/1965327

相关文章
|
存储 缓存 前端开发
【数据结构/C语言】深入理解 双向链表
【数据结构/C语言】深入理解 双向链表
C语言里的循环链表
C语言里的循环链表
|
存储 算法 C语言
【C语言】深入浅出:C语言链表的全面解析
链表是一种重要的基础数据结构,适用于频繁的插入和删除操作。通过本篇详细讲解了单链表、双向链表和循环链表的概念和实现,以及各类常用操作的示例代码。掌握链表的使用对于理解更复杂的数据结构和算法具有重要意义。
4337 6
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
699 5
|
存储 C语言
【数据结构】手把手教你单链表(c语言)(附源码)
本文介绍了单链表的基本概念、结构定义及其实现方法。单链表是一种内存地址不连续但逻辑顺序连续的数据结构,每个节点包含数据域和指针域。文章详细讲解了单链表的常见操作,如头插、尾插、头删、尾删、查找、指定位置插入和删除等,并提供了完整的C语言代码示例。通过学习单链表,可以更好地理解数据结构的底层逻辑,提高编程能力。
1955 4
|
存储 缓存 C语言
C语言:链表和数组有什么区别
C语言中,链表和数组是两种常用的数据结构。数组是一种线性结构,元素在内存中连续存储,通过下标访问,适合随机访问且大小固定的情况。链表由一系列不连续的节点组成,每个节点存储数据和指向下一个节点的指针,适用于频繁插入和删除操作的场景,链表的大小可以动态变化。
1205 2
|
C语言
无头链表再封装方式实现 (C语言描述)
如何在C语言中实现无头链表的再封装,包括创建节点和链表、插入和删除操作、查找和打印链表以及销毁链表的函数。
238 0
|
C语言
C语言链式结构之有头单链表再封装写法
本文介绍了如何使用C语言对有头单链表进行封装,包括节点的创建、链表的初始化、数据的插入和删除,以及链表的打印等功能。
272 1
|
C语言
C语言结构体链式结构之有头单链表
文章提供了一个C语言实现的有头单链表的完整代码,包括创建链表、插入、删除和打印等基本操作。
352 1
|
存储 测试技术 C语言
C语言实现链表的各种功能
本文详细介绍了如何使用C语言实现链表的各种功能,包括链表节点结构的定义与操作函数的实现。链表作为一种常用的数据结构,具有节点自由插入删除、动态变化等特点。文中通过`link_list.h`和`link_list.c`两个文件,实现了链表的初始化、插入、删除、查找、修改等核心功能,并在`main.c`中进行了功能测试。这些代码不仅展示了链表的基本操作,还提供了丰富的注释帮助理解,适合作为学习链表的入门资料。