《数据结构》2012级实验报告模板..

  • 格式:doc
  • 大小:181.00 KB
  • 文档页数:22

下载文档原格式

  / 22
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告(一)

一、实验目的:

1.掌握VC6.0开发环境下C/C++程序的编辑、编译和运行。

2.通过实验回顾复习C语言中关于结构体、指针等知识的应用。

3.了解学习数据结构的主要方法和课程的主要知识框架。

二、实验环境:

个人电脑、Windows XP、VC6.0或以上版本。

三、实验内容、程序代码、程序测试运行界面

1.设计一个程序,输出所有小于等于n(n为一个大于2的正整数)的素数。要求:(1)每行输出10个素数;(2)尽可能采用较优的算法。

2.编写一个程序,计算任一输入的正整数的各位数字之和,并分析算法的时间复杂度。

3.编写一个程序,判断一个字符串是否为“回文”(顺读和倒读都一样的字符串称为“回文”),并分析算法的时间复杂度。

四、心得体会与建议

实验报告(二)

一、实验目的:

1.熟练掌握线性表的顺序存储结构的概念及各种基本操作的C语言实现。

2.熟练掌握线性表的链式存储结构中的单链表的概念及各种基本操作的C 语言实现。

3.了解双向链表及循环链表的基本操作。

二、实验环境:

个人电脑、Windows XP、VC6.0或以上版本。

三、实验内容、程序代码、程序测试运行界面

1.编写一个程序,实现顺序表的各种基本运算(假设顺序表的元素类型为char),并在此基础上设计一个程序完成如下功能:

(1)初始化顺序表L;

(2)采用尾插法依次插入元素a,b,c,d,e;

(3)输出顺序表L;

(4)输出顺序表L长度;

(5)判断顺序表L是否为空;

(6)输出顺序表L的第3个元素;

(7)输出元素a的位置;

(8)在第4个位置上插入元素f;

(9)输出顺序表L;

(10)删除L的第3个元素;

(11)输出顺序表L;

(12)释放顺序表L。

程序代码如下:

程序运行结果如下:

2.编写一个程序,实现单链表的各种基本运算(假设单链表的元素类型为char),并在此基础上设计一个程序,完成如下功能:

(1)初始化单链表h;

(2)采用尾插法依次插入元素a,b,c,d,e;

(3)输出单链表h;

(4)输出单链表h长度;

(5)判断单链表h是否为空;

(6)输出单链表h的第3个元素;

(7)输出元素a的位置;

(8)在第4个位置上插入元素f;

(9)输出单链表h;

(10)删除h的第3个元素;

(11)输出单链表h;

(12)释放单链表h。

程序代码如下:

程序运行结果如下:

3.编写一个程序,实现双链表的各种基本运算(假设双链表的元素类型为char),并在此基础上设计一个程序,完成如下功能:

(1)初始化双链表h;

(2)采用尾插法依次插入元素a,b,c,d,e;

(3)输出双链表h;

(4)输出双链表h长度;

(5)判断双链表h是否为空;

(6)输出双链表h的第3个元素;

(7)输出元素a的位置;

(8)在第4个位置上插入元素f;

(9)输出双链表h;

(10)删除h的第3个元素;

(11)输出双链表h;

(12)释放双链表h。

程序代码如下:

程序运行结果如下:

四、心得体会与建议

实验报告(三)

一、实验目的:

1.掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。

2.掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,队列顺序存储结构、链式存储结构和循环队列的实现。

3.掌握顺序串和链串的特点及基本操作,如串的插入、求子串、串的输出、串的连接等。

二、实验环境:

个人电脑、Windows XP、VC6.0或以上版本。

三、实验内容、程序代码、程序测试运行界面

1.编写一个程序,实现顺序栈(假设栈中元素类型为char)的各种基本运算,并在此基础上设计一个程序完成如下功能:

(1)初始化栈s;

(2)判断栈s是否非空;

(3)依次进栈元素a,b,c,d,e;

(4)判断栈s是否非空;

(5)输出栈长度;

(6)输出从栈顶到栈底元素;

(7)输出出栈序列;

(8)判断栈s是否非空;

(9)释放栈。

程序代码如下:

程序运行结果如下:

2.编写一个程序,实现链栈(假设栈中元素类型为char)的各种基本运算,并在此基础上设计一个程序,完成如下功能:

(1)初始化链栈s;

(2)判断链栈s是否非空;

(3)依次进链栈元素a,b,c,d,e;

(4)判断链栈s是否非空;

(5)输出链栈长度;

(6)输出从链栈顶到栈底元素;

(7)输出出链栈序列;

(8)判断链栈s是否非空;

(9)释放链栈。

程序代码如下:

程序运行结果如下:

3.编写一个程序,实现链队的各种基本运算(假设队列中元素类型为char),并在此基础上设计一个程序,完成如下功能:

(1)初始化链队q;

(2)判断链队q是否非空;

(3)依次进队元素a,b,c;

(4)出队一个元素,并输出该元素;

(5)输出链队q的元素个数;

(6)依次进链队元素d,e,f;

(7)输出链队q的元素个数;

(8)输出出队序列;

(9)释放链队。

程序代码如下:

程序运行结果如下:

4.编写一个程序,实现顺序串的各种基本运算,并在此基础上设计一个程序,完成如下功能:

(1)建立串s=“abcdefghefghijklmn”和串s1=“xyz”

(2)输出串s;

(3)输出串s的长度;

(4)在串s的第9个字符位置插入串s1而产生串s2;

(5)输出串s2;

(6)删除串s第2个字符开始的5个字符而产生串s2;

(7)输出串s2;

(8)将串s的第2个字符开始的5个字符替换成串s1而产生串s2;

(9)输出串s2;

(10)提取串s的第2个字符开始的10个字符而产生串s3;