- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机软件基础实验导书(内容)
实验一 线性表及其应用
一、实验目的
1.熟悉C语言的上机环境,进一步掌握C语言的结构特点。
掌握线性表的顺序存储结构——的定义及C语言实现。
掌握线性表在顺序存储结构——顺序表中的各种基本操作。
掌握线性表的链式存储结构——单链表的定义及C语言实现。
掌握线性表在链式存储结构——单链表中的各种基本操作。
在数据处理中,大量数据均以表格形式出现,称为线性表,它是一种最简单也是最常见的数据结构。线性表是数据元素的有限序列。
线性表的结构特点是:数据元素之间是线性关系,线性表中存在唯一的“第一个元素”(表头),必存在一个唯一的“最后一个元素”(表尾)。除第一个元素外,每个元素有且只有一个前趋元素,除最后一个元素外,每个元素有且只有一个后续元素。
三、实验内容
1.顺序线性表的建立、插入及删除。
2.链式线性表的建立、插入及删除。
四、实验步骤
1.建立一个顺序表{21,23,14,5,56,17,31},然后在第i个位置插入元素68。该表中各元素的值及顺序表的长度。建立一个带头结点的单链表{21,23,14,5,56,17,31}。该表中各元素的值及表的长度。实现提示
的类型也有随机存取的特点,一维数组就。可用
在此,我们利用语言的结构体类型定义顺序表:
#define MAXSIZE 100
struct sequenlist
{ int elem[MAXSIZE];
int last; /* */
} sequenlist;
typedef struct sequenlist sequentable;
将此结构定义放在一个头文件里,可避免在后面的参考程序中代码重复书写,另外在该头文件里给出顺序表的建立及常量的定义。注意如何取到第i个元素,在插入过程中注意溢出情况以及数组的下标与位序(顺序表中元素的次序)的区别。单链表的结点结构除数据域外,还含有一个指针域。用C语言描述结点结构如下:struct node
{
int data; //数据域
struct node *next; //指针域
};
typedef struct node NODE;
注意结点的建立方法及构造新结点时指针的变化。构造一个结点需用到C语言的标准函数malloc(),如给指针变量p分配一个结点的地址:
p=(NODE *)malloc(sizeof(NODE));该语句的功能是申请分配一个类型为NODE的结点的地址空间,并将首地址存入指针变量p 中。当结点不需要时可以用标准函数free(p)释放结点存储空间,这时p为空值(NULL)。实验二 堆栈及其应用
一、实验目的
1.掌握的顺序存储结构——的定义及C语言实现。
掌握顺序存储结构——顺序中的各种基本操作。
掌握的链式存储结构——的定义及C语言实现。
掌握链式存储结构——中的各种基本操作。
1.顺序线性表的建立、插入及删除。
2.链式线性表的建立、插入及删除。
3.通过栈操作实现十进制到二进制的转换。
四、实验步骤
1.建立。。建立。。
1.算法原理:由于十进制数转换为二进制数的方法是依次将十进制数除以2取余,然后将余数倒排序。这样刚好满足“先进后出”的特性,即可以将除2取余的结果依次进栈,最后再依次出栈。
2.算法示意图:例如将十进制数13转换为二进制,其方法如下:
进制转换函数定义,以十进制转换为二进制为例
void dec_to_bin(int N,int B)
{
int e;
InitStack(S); //初始化堆栈
while(N){
push(S,N%B);
N=N/B;
}
while(!StackEmpty(S)){ //堆栈判空
e=pop(S);
printf(“%d”,e);
}
}
六、实验报告要求
简述实验目的、原理
写出顺序栈和链栈的插入、删除算法
写出运用栈实现十进制到十六进制转换的算法。
附上程序清单
实验三 二叉树的遍历
一、实验目的
1.理解二叉树的概念。
2.掌握二叉树的构造与存储。
3.掌握二叉树的前序,中序和后序遍历。
二、实验原理
树型结构是一类很重要的非线性数据结构,元素结点之间存在明显的分支和层次关系。树型结构在客观世界中广泛存在。
数是由n个(n=0)结点组成的有限集合,其中有且仅有一个结点称为根结点(root),其余结点构成根结点的子树或叶子。
二叉树是由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成。
三、实验内容
1.产生20个10到100之间的随机整数,并用一个数组存储该序列。
2.用先序方法建立一棵二叉树。
3.编写先序遍历、中序遍历、后序遍历二叉树的程序。
四、实验步骤
1.写出一个算法将20
文档评论(0)