循环队列的基本用法(链式存储结构)
来源:互联网 发布:php require once地址 编辑:程序博客网 时间:2024/04/30 04:44
#include <stdio.h>#include <stdlib.h>#define DataType inttypedef struct Node{ DataType Data; struct Node *Next;}QNode;typedef struct LNode{ QNode *Front; QNode *Rear;}LNode;LNode *Initial_LNode(void);int IsEmptyLNode(LNode *Head);int EnterLNode(LNode *Head, DataType Elem);int OutLNode(LNode *Head,DataType Elem);LNode * Initial_LNode(void){ LNode *Head=NULL; QNode *p =NULL; Head=(LNode *)malloc(sizeof(LNode)); Head->Front=NULL; Head->Rear =NULL; p=(QNode *)malloc(sizeof(QNode)); p->Data=-1; p->Next=NULL; Head->Front=p; Head->Rear =p; return Head;}int IsEmptyLNode(LNode *Head){ return(Head->Front==NULL);}int EnterLNode(LNode *Head, DataType Elem){ QNode *p=NULL; QNode *q=NULL; p=(QNode *)malloc(sizeof(QNode)); p->Data=Elem; printf("Elem that enter the queue : %d\n",p->Data); p->Next=NULL; q=Head->Rear; q->Next=p; Head->Rear=p; return 0;}int OutLNode(LNode *Head,DataType Elem){ QNode *p=NULL,*q=NULL; if(IsEmptyLNode(Head)) { printf("Empty queue,ends the program.\n"); exit(0); } else { p=Head->Front; q=p->Next; p->Next=q->Next; Head->Rear=q->Next; Elem=q->Data; printf("Elem that out the queue : %d\n",Elem); free(q); q=NULL; return 0; }}int main(void){ LNode *Head=NULL; DataType Elem=0; Head=Initial_LNode( ); EnterLNode(Head,1); EnterLNode(Head,2); EnterLNode(Head,3); OutLNode(Head,Elem); OutLNode(Head,Elem); return 0;}
0 0
- 循环队列的基本用法(链式存储结构)
- 队列的基本操作(采用链式存储结构)
- 栈的基本用法(链式存储结构)
- 队列——链式存储结构及其基本运算(链队列的另一种表达方式)
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- 队列的链式存储结构
- 数据结构(队列):队列的链式存储结构
- 队列的基本用法(顺序存储结构)
- 循环队列的链式存储实现
- 队列——顺序存储结构及其基本运算(循环队列的另一种表达方式)
- 队列的链式存储结构(复习)
- shell编程
- HDU5052 Yaoge’s maximum profit(树链剖分)点权更新,经典题
- Codeforces Round #162 (Div. 1) B dp
- POJ2081
- 今天在CentOS6.4操作系统下安装了Oracle客户端
- 循环队列的基本用法(链式存储结构)
- Ubuntu 12.04(64位)安装Android Studio 全过程
- linux grep命令详解
- C++基础
- 自学宝典:10个学习Android开发的网站推荐
- 电信141p123第36题
- JAVA中给 JPanel 加标题头
- 机房重构——总结篇
- 杭电ACM——1088