队列的链表实现
来源:互联网 发布:足球博客软件 编辑:程序博客网 时间:2024/05/21 14:40
链表的队列实现:
需要注意两个点:
1)front和rear 是一个单独的不分配数据的结点,它的实际结点是下一个,不是当前的!
2)每次入队列的时候,需要分配一个结点,不然会core segment error!
#include<stdio.h>#include<stdlib.h>typedef struct LinkList{ int data; struct LinkList *next;}LinkNode,*pLinkList;typedef struct queue{ pLinkList front; pLinkList rear;}Queue;void InitQueue(Queue *p);int isEmpty(Queue *p);void EnQueue(Queue *p,int num);void Dequeue(Queue *p,int *num);void InitQueue(Queue *p){ p->front = (pLinkList)malloc(sizeof(struct LinkList)); p->rear = p->front;}int isEmpty(Queue *p){ if(p->front == p->rear) return 1; return 0;}void EnQueue(Queue *p,int num){ if(p==NULL) printf("p is null\n"); pLinkList s; s = (pLinkList)malloc(sizeof(struct LinkList)); s->data = num; s->next = NULL; p->rear->next = s; p->rear = s;}void Dequeue(Queue *p,int *num){ if(isEmpty(p)) printf("Queue is empty\n"); *num = p->front->next->data; pLinkList s; s = p->front->next; p->front = s->next; free(s);}int main(){ Queue head; InitQueue(&head); EnQueue(&head,7); EnQueue(&head,8); EnQueue(&head,9); int num; Dequeue(&head,&num); printf("Dequeue num = %d\n",num); return 0;}
阅读全文
0 0
- 链表实现的队列
- 队列的链表实现!
- 队列的链表实现
- 队列的链表实现
- 队列的链表实现
- 队列的链表实现
- 队列的链表实现
- 队列的链表实现
- 队列的链表实现
- 队列的链表实现
- 队列的链表实现
- 队列的链表实现
- 队列的链表实现
- 队列的链表实现
- 队列的链表实现
- 队列的链表实现
- 各种实现队列的问题:链表实现,栈实现队列及队列实现栈
- 队列 队列的数组实现及链表实现
- 软件工程学习总结
- 文件解码
- Swift4.0 Codable踩坑之派生类数据的保存
- 关于卡特兰数
- css基础(ife学习笔记)
- 队列的链表实现
- shell学习之十五--网站web服务监控
- HDU 5424 Rikka with Graph II 哈密顿路径+dfs找环
- 机器学习
- Spark-Streaming之window滑动窗口应用
- 1126. Eulerian Path (25)
- a标签的href属性
- 开通csnd博客第一天
- Leetcode 63. Unique Paths II