1217417007 严梦 数据结构实验报告 第 1 页 共 7 页 数 据 结 构 实 验 报 告 成绩_____ 学号 1217417007 姓名 严梦 授课教师 黄 欣 专业 12 信计 实验报告递交日期 2014.10.28 实验题目 用带头结点的循环单链表表示队列,并且只设置一个尾指针。编制程序完成队列操作。 一. 需求分析 1.程序的实现功能: 编写函数: (1)建立循环队列,返回尾指针函数 linkqu eu e *create( ) (2)X 入队,返回尾指针函数 linkqu eu e * enqu eu e(linkqu eu e *rear,int x ) (3)出队返回队头元素函数 linkqu eu e * ou tqu eu e(linkqu eu e *rear) (4)显示队列元素函数 v oid list(linkqu eu e *rear) (5)删除队列函数 linkqu eu e * del(linkqu eu e *rear) (6)主函数完成功能: a). 调用 rear=creat( ) ; b). 调用 list(rear); c). 输入x 值; d). 调用 enqu eu e(rear,x ); e). 调用 list(rear); f). 调用 ou tqu eu e(rear) g).调用 list(rear); h) 调用 del(rear) i) list(rear). 2.数据输入的内容﹑输入形式与范围 输入所创建的循环队列中的数据,以及要插入的x 的值,其类型是整型数;输入数据以回车符相隔,以’0’为输入结束符。 3.数据输出的内容与形式 输出创建循环队列时队列数据,插入x 后的队列中数据和出队之后队列的数据, 数据以“%3d”相隔。 二. 主要算法的算法思想. 1.创建循环队列: 用尾插法建立循环队列,每个新插入的结点都作为队列的最后一个结点。读入结点的数值,生成的新结点插入队尾。再把新结点的指针域指向头结点,然后返回尾指针函数。 2. 显示队列元素的函数: 从 rear 的第一个结点开始往后依次输出结点数据。 3. 插入值为x 的结点到 rear 的队头函数: 生成值为x 的结点*p 在*rear 之后,把*p 的指针域指向头结点,*p 作为*rear的后继。 4.出队返回队头元素函数: 保留头结点的位置,h 是头结点,指针p 指向队头元素,把队头元素的后继作为头结点的后继,释放 p。即删除队头元素。 1217417007 严梦 数据结构实验报告 第 2 页 共 7 页 4. 释放单链表rear 结点空间函数: 尾指针的后继是头结点,头结点就是尾结点,相当于将队列置空。 5. 主函数: 先申明函数首部,设置尾指针;依次调用创建队列函数、显示队列函数;输入 x值,调用入队函数、显示...