读书人

数据结构之链式行列

发布时间: 2013-03-19 17:22:05 作者: rapoo

数据结构之链式队列

// LinkQueue.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "stdio.h"#include "iostream"using namespace std;typedef struct QNode{int data;struct QNode *next;}QNode,*QueuePtr;typedef struct{QueuePtr front;QueuePtr rear;}LinkQueue;int InitQueue(LinkQueue &Q);int DestroyQueue(LinkQueue &Q);int EnQueue(LinkQueue &Q, int e);int DeQueue(LinkQueue &Q, int &e);int QueueTraverse(LinkQueue &Q);int _tmain(int argc, _TCHAR* argv[]){int a[5]={1,2,3,4,5};LinkQueue Q;InitQueue(Q);for (int i=0;i<5;i++){EnQueue(Q,a[i]);}QueueTraverse(Q);int e;DeQueue(Q,e);QueueTraverse(Q);system("pause");return 0;}int InitQueue(LinkQueue &Q){Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));if (!Q.front){return -1;}Q.front->next=NULL;}int DestroyQueue(LinkQueue &Q){while(Q.front){Q.rear=Q.front->next;free(Q.front);Q.front=Q.rear;}return 1;}int EnQueue(LinkQueue &Q, int e){QueuePtr p=(QueuePtr)malloc(sizeof(QNode));if (!p){return -1;}p->data=e;p->next=NULL;Q.rear->next=p;Q.rear=p;return 1;}int DeQueue(LinkQueue &Q, int &e){if (Q.front==Q.rear){return -1;}QueuePtr p=Q.front->next;e=p->data;Q.front->next=p->next;if (Q.rear==p){// 出队列以后队列为空Q.rear=Q.front;}}int QueueTraverse(LinkQueue &Q){QueuePtr p=Q.front->next;while(p){printf("%5d",p->data);p=p->next;}printf("\n");return 1;}

读书人网 >编程

热点推荐