2022年数据结构实验队列的基本操作收集 .pdf





《2022年数据结构实验队列的基本操作收集 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构实验队列的基本操作收集 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构实验报告实验名称:实验五队列的基本操作一、实验目的:1、 掌握链接存储队列的进队和出队等基本操作2、 掌握环行队列的进队和出队等基本操作3、 加深对队列结构的理解,逐步培养解决实际问题的编程能力二、实验环境:计算机,同学,vc+ 三、实验内容和要求:(一)基础题1、编写链接队列的基本操作函数( ) EnQueue( QUEUE *head, QUEUE *tail, int x ) 进队操作 () DeQueue( QUEUE *head, QUEUE *tail, int *cp ) 出队操作( ) OutputQueue( QUEUE *head ) 输出队列中元素2、调用上述函数
2、实现下列操作,操作步骤如下:(1)调用进队函数建立一个队列;(2)读取队列的第一个元素;(3)从队列中删除元素;(4)输出队列中所有元素。注:每完成一个步骤,必须及时输出队列中元素,便于观察操作结果。3、编写环型队列的基本操作函数( ) EnQueue( int *queue, int maxn, int *head, int *tail, int x ) 进队操作 , 返回 1: 队满 () DeQueue( int *queue, int maxn, int *head, int *tail, int *cp ) 出队操作返回 1: 队空( ) OutputQueue( int *queu
3、e, int maxn, int h, int t )输出队列中元素4、调用上述函数实现下列操作,操作步骤如下:(1) 调用进队函数建立一个队列;(2)读取队列的第一个元素;(3)从队列中删除元素;(4)输出队列中所有元素。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 四、实验步骤:从网上把word 下载下来,认真的看题目,思考和同学讨论在老师的帮助下,完成了题目。五、实验结果与分析(含程序、数据记录及分析和实验总结等) :基
4、础题一#include #include typedef struct queue /* 定义队列结构*/ int data; /* 队列元素类型为int */ struct queue *link; QUEUE; void EnQueue( QUEUE *head, QUEUE *tail, int x ) /* 进队操作*/ QUEUE *p; p = (QUEUE *)malloc( sizeof(QUEUE) ); p-data = x; p-link = NULL; /* 队尾指向空*/ if( *head = NULL ) /* 队首为空,即为空队列*/ *head = *tail
5、 = p; else (*tail)-link = p; /* 新单元进队列尾*/ *tail = p; /* 队尾指向新入队单元*/ int DeQueue( QUEUE *head, QUEUE *tail, int *cp ) /* 出队操作1:对空*/ QUEUE *p; p = *head; if( *head = NULL ) /* 队空*/ return 1; *cp = (*head)-data; *head =(*head)-link; if( *head = NULL ) /* 队首为空,队尾也为空*/ *tail = NULL; free( p ); /* 释放单元*/
6、return 0; void OutputQueue( QUEUE *head ) /* 输出队列中元素*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - while (head != NULL ) printf( %d , head-data ); head = head-link; printf( n ); void main() QUEUE *head, *tail; int op, i; head = tail = N
7、ULL; /* 将队列头和尾置为空*/ while( 1 ) printf( 请选择操作, 1:进队2:出队0:退出 ); fflush( stdin ); /* 清空标准输入缓冲区*/ scanf( %d, &op ); switch( op ) case 0: /* 退出*/ return 0; case 1: /* 进队*/ printf( 请输入进队元素: ); scanf( %d, &i ); EnQueue( &head, &tail, i ); printf( 队内元素为 :n ); OutputQueue( head ); break; case 2: /* 出队*/ if(D
8、eQueue( &head, &tail, &i )= 0 ) /* 出队成功*/ printf( 出队元素为 : %d , 队内元素为 :n , i ); OutputQueue( head ); else printf( 队空 n ); break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 基础题二#include #include #define MAXN 11 /* 定义环行顺序队列的存储长度*/ int EnQ
9、ueue( int *queue, int maxn, int *head, int *tail, int x )/* 进队操作 , 返回 1:队满 */ if( *tail + 1 ) % maxn= *head ) /* 队尾指针赶上队首指针, 队满*/ return 1; *tail =( *tail + 1 ) % maxn ;/* 队尾指针 +1 */ queue*tail = x; /* 元素入对尾*/ return 0; int DeQueue( int *queue, int maxn, int *head, int *tail, int *cp ) /* 出队操作返回 1:队
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据结构实验队列的基本操作收集 2022 数据结构 实验 队列 基本 操作 收集

限制150内