合肥学院 计算机科学与技术系 课程设计报告 2 0 0 9 ~2 0 1 0 学年第二学期 课程 数据结构与算法 课程设 计 名 称 广义表的运算 学生姓名 陈发银 学号 0 8 0 4 0 1 2 0 2 8 专业班级 0 8 计本(2 )班 指导教师 王昆仑 2 0 1 0 年 6 月 1 题目: 广义表的运算
本设计要求实现广义表的建立、查找、输出、取表尾、以及求深度、求逆表等
一、问题分析与任务定义: 此程序需要完成以下几个任务:首先要将输入的用数组存储的广义表转化成以广义表的存储结构存储的广义表,这个过程也就是生成广义表;查找广义表,查找广义表要返回一个值 flag,当 flag=1时,程序查找到待查的元素,当 flag=0时,程序没有找到待查元素;输出广义表,遍历广义表,输出广义表的遍历结果;取表头,返回表头结点;取表尾,将广义表从第二个元素开始复制到另一个广义表中;求广义表的深度,遍历每一层广义表,将广义表内每层广义表深度最大的广义表相加为同一层所求过的子表中深度的最大值,最后返回值加一即为广义表的深度;求逆表,将广义表逆向输出
实现本程序需要解决以下问题: 1、 如何根据广义表的特点建立广义表
2、 用什么方法才能查找到广义表中每一个元素,如何标志是否找到待查元素
3、 建立广义表,如何根据广义表的存储结构的特点建立广义表
4、 求广义表的深度的依据是什么
5、 运用什么方法才能将广义表逆序
6、 如何实现广义表的遍历
二、概要设计和数据结构选择: 1、设计思想:广义表是线性表的一种推广,但它并不是线性表
课本上在介绍广义表的计本概念的基础上,介绍了广义表的存储及应用
广义表浓缩了线性表、数组等常见的数据结构的特点,在有效利用存储空间方面更胜一筹,目前在文本处理、人工智能、代数操作和计算机图形方面等各个领域都具有应用价值
所以在我当时拿到这