实验二数据结构.docx

上传人:小飞机 文档编号:3436167 上传时间:2023-03-13 格式:DOCX 页数:3 大小:37.26KB
返回 下载 相关 举报
实验二数据结构.docx_第1页
第1页 / 共3页
实验二数据结构.docx_第2页
第2页 / 共3页
实验二数据结构.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验二数据结构.docx》由会员分享,可在线阅读,更多相关《实验二数据结构.docx(3页珍藏版)》请在三一办公上搜索。

1、实验二数据结构数据结构与算法课程实验报告 实验二: 姓名: 班级: 学号: 栈和队列的应用 实验内容: 实现链队列的各种基本运算,完成如下功能: 初始化并建立链队列 入队列 出队列 实验目的: 掌握栈和队列的定义和实现,学习利用栈和队列解决实际问题。 链队列 #include #include #include #include #include #include using namespace std; typedef struct QNode /定义结点类型 int data; struct QNode *next; QNode,*QueuePtr; typedef struct /定义链

2、表指针 QueuePtr front; QueuePtr rear; LinkQueue; void InitQueue(LinkQueue &Q) /构造一个空队列 Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode);/动态分配内存,生成头结点,使头指针,尾指针都指向它; if(!Q.front) cout内存分配失败!next=NULL; /头指针指向的头结点的指针域为NULL; /插入元素e为Q的新的队尾元素 void EnQueue(LinkQueue &Q,int e) QueuePtr p; p=(QueuePtr)malloc(sizeof

3、(QNode);/动态分配内存,生成新结点 if(!p) cout内存分配失败!data=e; Q.rear-next=p; /改变头指针的指针域,使其指向新结点p Q.rear=p; /改变尾指针,使其指向新结点p p-next=NULL; /新结点p作为尾指针,故其指针域为NULL /若队列不空,则删除其队头元素,用e返回其值 int DeQueue(LinkQueue &Q,int &e) QueuePtr p; if(Q.front=Q.rear) cout队列为空!next; /令p指向队头元素 e=p-data; Q.front-next=p-next; /令头结点的指针域指向p后

4、面的元素 if(Q.rear=p)Q.rear =Q.front; /考虑除了头结点外,只有一个结点的情况 free(p); return 1; int GetHead(LinkQueue &Q,int &e) /逐个读出队头元素,直到全部 QueuePtr first; first=Q.front; coutnext; cout data; return 1; void main LinkQueue Q; InitQueue(Q); int a5=2,3,4,5,6; int n; while(true) for(int i = 0;i 5; i+) EnQueue(Q, ai); GetHead(Q, a5); coutendl; coutn; EnQueue(Q,n); cout插入数据后的队列: ; GetHead(Q, a6); coutendl; coutn; DeQueue(Q,n); cout删除数据后的队列: ; GetHead(Q, a5); coutendl;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号