链队列的基本操作
2016-02-17 23:36
337 查看
#include<iostream> using namespace std; typedef struct Node { int data; Node* next; }; typedef struct Queue { Node* front; Node* rear; }; Queue* CreateQueue() { Queue* p = (Queue*)malloc(sizeof(Queue)); p->front = NULL; p->rear = NULL; return p; } void printQueue(Queue *q) { if(q->front == NULL) return; Node *temp = q->front; while(temp != NULL) { printf("%d \n",temp->data); temp = temp->next; } } void enQueue(Queue* &q, int elem) { Node* temp = (Node*)malloc(sizeof(Node)); temp->data = elem; if(q->rear == NULL) { q->front = temp; q->rear = temp; temp->next =NULL; } else { q->rear->next = temp; q->rear = temp; temp->next = NULL; } } int deQueue(Queue* &q) { Node *temp; int retTemp; if(q->rear == NULL) return 0; if(q->front==q->rear) { temp = q->front; q->front = q->rear = NULL; retTemp = temp->data; free(temp); } else { retTemp = q->front->data; temp = q->front; q->front = q->front->next; free(temp); } return retTemp; } int isEmptyQueue(Queue* q) { if(q->front == NULL || q->rear == NULL) return 1; else return 0; } int main(int argc, char **argv) { Queue *L; L = CreateQueue(); enQueue(L,1); enQueue(L,2); enQueue(L,3); enQueue(L,4); printQueue(L); int temp = deQueue(L); printf("出队数据:%d\n",temp); printQueue(L); return 0; }
相关文章推荐
- 数据结构:二叉树
- CodeForces 39B Company Income Growth
- UVA-10118 Free Candies (DP、记忆化搜索)
- 1083. List Grades (25)
- Apache 编译 --with-apr parameter is incorrect 错误
- POJ 2387 Til the Cows Come Home(dij+邻接矩阵)
- 未来趋势
- 一个错误
- a类、b类、c类地址
- 老王学linux-centos6.7RHCS
- iOS学习----------图片的简单处理(1)
- LBS-Object C 定位,地图,导航
- NSString的八条实用技巧
- ASM:《X86汇编语言-从实模式到保护模式》1-4章:处理器,内存和硬盘基础
- HDU 2544 最短路(dijkstra+邻接矩阵)
- 一个实现了APP内部集中式通知中心,简化通知管理,简化代码逻辑和debug
- 传智播客168期JavaEE就业班(第八天 WEB简介 Tomcat)
- 【设计模式】组合模式
- springmvc应用程序使用maven部署到tomcat中时产生的异常的解决(javax/servlet/ServletContext&SpringServletContainerInitializer->javax.servlet.ServletContainerInitializer)
- 关于相对路径和绝对路径