链式队列的基本操作(配图)
来源:互联网 发布:java des 加解密 编辑:程序博客网 时间:2024/04/30 02:32
一、结构体结构
队列中储存的内容,本身是一个链表
队头和队尾只是指向这个链表的两个指针,这样就可以使用两个指针控制访问的事件
typedef struct elem{ int date; elem *next;}elem;typedef struct queue{ elem *tail; elem *head;}queue;
二、初始化
下图是初始化完结构体的样子
void Init(queue *que){ que->head = (elem*)malloc(sizeof(elem)); if (que->head != NULL) { que->tail = que->head; que->head->next= NULL;//易错点 }}
三、入队
下图是插队的过程
int enter(queue *que,int date){ elem *p = (elem*)malloc(sizeof(elem)); if (p == NULL) return -1; p->date = date; p->next = NULL; que->tail->next = p; que->tail = que->tail->next; return 0;}
四、出队
下图是出队的过程
出队的特殊情况
int del(queue *que, int &date){ if (que->head == que->tail) { date = -1; return -1; } elem *p = (elem*)malloc(sizeof(elem)); p = que->head->next; date = p->date; que->head->next = p->next; if (que->head->next == NULL) { que->tail = que->head; } free(p); return 0;//正常出队}
五、判断是否为空
int empty(queue que){ if (que.head->next == que.tail->next) return 1; return 0;}
六、取得队首的值
int get(queue que,int &date){ if (que.head->next == NULL) return -1; date = que.head->next->date;}
七、整体图
阅读全文
0 0
- 链式队列的基本操作(配图)
- 链式队列的基本操作
- 链式队列基本操作
- 链式队列基本操作
- 队列的基本操作(采用链式存储结构)
- 【数据结构】链式队列的基本操作
- 链式队列的基本操作实现c++
- 链式队列的基本操作与实现
- 队列基本操作(链式结构)
- 【队列】链式结构实现队列的基本操作
- 循环队列和链式队列的基本操作1
- 链式队列基本操作总结
- 队列之链式队列基本操作
- 链式队列基本操作之code_legend
- (C语言版)栈和队列(一)——实现链式栈和链式队列的基本操作以及遇到的问题
- (C语言版)栈和队列(一)——实现链式栈和链式队列的基本操作以及遇到的问题
- 链式队列的操作实现
- 队列的链式存储操作
- 淘淘项目第二天笔记
- Java-集合 list对象进行指定位置插入、删除、迭代、遍历输出(具体习题讲解)
- n-1位数
- 2的幂次方表示
- Servlet-Web过滤器详解
- 链式队列的基本操作(配图)
- Mycat之——Mycat集群部署(基于HAProxy + Mycat)
- Spring自定义注解扫描与操作
- AndroidStudio中图片的放大
- Java IO中涉及到的哪些类以及哪些设计模式
- PinPoint踩过的一些坑
- UVA
- js继承
- JAVA UDP的使用