实验二 顺序表的基本操作
实验预备知识:
1.熟练运用数组进行程序设计,掌握数组名和指针作为函数参数。 2.掌握结构体和结构体数组的访问与使用。
3.熟练实现顺序表类型和变量(如下所示)定于、熟悉顺序表的访问原理(顺序存储、随机访问)。
一、实验目的
1.掌握顺序表的建立、数据元素的插入和删除、掌握数据元素的访问。 2.能够熟练的使用函数来实现顺序表的各种操作。
二、实验环境
⒈ 硬件:每个学生需配备计算机一台。 ⒉ 软件:Windows操作系统+Turbo C;
三、实验要求
1.定义一顺序表类型,并定义顺序表。
2.将教材中顺序表的建立、初始化、插入、删除等函数实现。
3.顺序表能够存储10名学生的基本信息(包括姓名、学号和成绩)。 4.由主函数按照用户要求对各个顺序表操作访问。
5.每次操作之前要有明确的说明,操作后要输出操作结果。 6.分析顺序表的插入、删除、查找的时间和空间复杂度。
四、实验内容
1.在自己的U盘的“姓名+学号”文件夹中创建“实验2”文件夹,本次实验的所有程序和数据都要求存储到本文件夹中。
2.完成顺序表操作的如下函数:
5
3.在主函数中提示用户选择数据表操作,例如: 请选择对顺序表的操作,操作菜单如下: ******************************************************* 建立顺序表(C) 初始化顺序表(N) 顺序表中插入元素(I) 数据表中删除元素(D) ?? 退出系统(E) ******************************************************* 作者:*** 6
五、思考题
1.如何实现某两个顺序表(集合)的合并?
2.如何将两个递增的顺序表合并成非递减的顺序表(并分析其时间和空间复杂度)。
六、报告要求
1.认真书写实验报告,字迹清晰,格式规范。报告中应写清姓名、学号、实验日期、实验题目、实验目的、实验要求、实验原理(系统主要工作流程图)。
2.报告中应书写主要源程序,且源程序中要有注释。
3.报告中应包含运行结果及结果分析。如调试通过,请注明‘通过’并写出输入的数据及运行结果。
4.报告最后包含实验总结和体会。 5.给出时间和空间复杂度分析。
6.如未调试通过或结果不正确,试分析原因,利用课余时间独立完成,完成后方可书写实验报告。
7
实验三 单链表的基本操作
实验预备知识:
1.熟练运用指针进行程序设计,掌握结构体指针。 2.掌握使用结构体指针访问结构体变量。 3.掌握指针作为函数的参数使用。
4.理解单链表的含义、目的和处理方法。
一、实验目的
1.掌握线性表的链式存贮结构及基本操作,深入了解链表的基本特性,以便在实际问题背景下灵活运用它们。
2.巩固该存贮结构的构造方法,深入理解和灵活掌握链表的插入、删除等操作。
二、实验环境
⒈ 硬件:每个学生需配备计算机一台。操作系统:DOS或Windows; ⒉ 软件:DOS或Windows操作系统+Turbo C;
三、实验要求
1.定义一链表类型,并定义带有头结点的单链表。
2.将教材中链表的建立、初始化、插入、删除等函数实现。
3.链表能够存储10名学生的基本信息(包括姓名、学号和成绩)。 4.由主函数按照用户要求对各个链表操作访问。
5.每次操作之前要有明确的说明,操作后要输出操作结果。 6.分析顺序表链表的插入、删除、查找的时间和空间复杂度。
四、实验内容
1.在自己的U盘的“姓名+学号”文件夹中创建“实验3”文件夹,本次实验的所有程序和数据都要求存储到本文件夹中。
2.完成链表操作的如下函数:
8
3.在主函数中提示用户选择数据表操作,例如: 请选择对顺序表的操作,操作菜单如下: ******************************************************* 建立链表表(C) 初始化链表表(N) 链表中插入元素(I) 链表中删除元素(D) ?? 退出系统(E) ******************************************************* 作者:*** 9