双向链表实现队列的 入队、出队、查找元素
来源:互联网 发布:茶叶销售量数据 编辑:程序博客网 时间:2024/05/16 06:58
typedef int DItemType;typedef struct SDoubleList{DItemType iValue;SDoubleList *prev;SDoubleList *next;} DLinkedList,*pDLinkedList;/* 创建双链表 */DLinkedList *InitDoubleList(){DLinkedList *doublelist = (DLinkedList*)malloc(sizeof(DLinkedList));if (NULL == doublelist)exit(1);doublelist->prev = NULL;doublelist->next = NULL;return doublelist;}/* 双链表实现队列入队 */bool DLinkedList_Push(DLinkedList* DL, DItemType value){if (NULL==DL){puts("队列不存在,无法插入!\n");return false;}DLinkedList *temp = (DLinkedList *)malloc(sizeof(DLinkedList));if (NULL == temp) {puts("插入失败!");return false;}temp->iValue = value;temp->next = NULL;temp->prev = NULL;DLinkedList *ttemp = DL;while (NULL != ttemp->next){ttemp = ttemp->next;}ttemp->next = temp;temp->prev = ttemp;return true;}/* 双链表实现队列出队 */bool DLinkedList_Pop(DLinkedList *DL){if (NULL==DL || NULL==DL->next) {puts("队列为空,无法出队!");return false;}DLinkedList *temp = DL->next;DL->next = temp->next;if (NULL==temp->next) {free(temp);return true;}temp->next->prev = DL;free(temp);return true;}/* 遍历队列 */void VisitDLinkedList(DLinkedList *DL){if (NULL==DL || NULL == DL->next) {puts("队列为空!");return;}DLinkedList *temp = DL->next;while (NULL !=temp){printf("%d ", temp->iValue);temp = temp->next;}printf("\n");}/* 查找某一元素 */bool findItem(DLinkedList *DL, DItemType value){if (NULL==DL || NULL==DL->next) {puts("队列为空,查找失败!");return false;}DLinkedList *temp = DL->next;while (temp){if (value==temp->iValue)return true;temp = temp->next;}return false;}void main(){DLinkedList *DL;DL = InitDoubleList();DLinkedList_Push(DL, 10);DLinkedList_Push(DL, 20);DLinkedList_Push(DL, 30);VisitDLinkedList(DL);DLinkedList_Pop(DL);DLinkedList_Pop(DL);VisitDLinkedList(DL);if (findItem(DL,30))puts("查找成功!");else puts("查找失败!");}
0 0
- 双向链表实现队列的 入队、出队、查找元素
- 链队列、循环队列的实现(初始化、出队、入队、取队头元素、判空)
- c语言:用双向链表实现双端队列(队列两端都可以进行入队出队操作)
- 队列的入队、出队操作实现
- 链表实现队列的出队和入队,栈的入栈和出栈
- 链队列的初始化、入队、出队等操作实现
- 链队列的入队、出队
- 链队列的出队入队
- C++实现普通队列,循环队列的基本操作(初始化,入队,出队,获取队列首元素等)
- 链队列的简单操作(入队,出队,输出队元素等)
- 链队列的初始化、出队、入队、取队头元素、判空
- 编程实现队列的入队、出队、测长、打印
- 编程实现队列的入队、出队、测长、打印
- 编程实现队列的入队/出队操作
- 编程实现队列的入队/出队操作
- 编程实现队列的入队、出队、测长、打印
- 利用两个栈实现队列的入队出队
- C语言--实现队列的入队出队
- iOS9网络适配教程
- box-sizing和calc()盒模型
- Https和算法分类
- 2799元的魅族旗舰PRO5,虽“不完美”但已尽量追求极致---ESM
- json对象、json格式字符串、java对象【使用此net.sf.json.JSONObject将java对象[比如数组集合Map、Map扩展]转换成json格式字符串】
- 双向链表实现队列的 入队、出队、查找元素
- 二叉树的非递归遍历-数据结构
- sql server中的update set from 对应 ORACLE 的写法
- MySQL++学习日志(一)
- 解决ADB server didn't ACK,连上手机问题
- VMware学习2_解决VMware虚拟机重启后IP地址变化问题
- eclipse将web项目转化为maven项目
- 绿色版Mysql的安装配置
- 深入理解Java:注解(Annotation)--注解处理器