c语言数据结构报告册,数据结构(C语言版)实验

数据结构(C语言版)实验

介绍

数据结构(C语言版)实验,由河南理工大学信息管理与信息系统1803版第四组制作。

制作本次内容是为了完善实验报告册,代码全部C++.

人员架构

实验详细内容

顺序表的基本操作

一元多项式的相加与相乘

链栈与循环队列的练习

字符串块链的实现

二叉树的基本算法实现

图的基本算法实现

二叉排序树的基本算法实现

排序方法的算法实现

实验目的和要求

1. 顺序表的基本操作

Status InitList(SqList &L)

Status Listinsert(SqList &L, int i, int e )

Status ListIndele(SqList &L, int i, int &e )

Status ListInprint(SqList L)

void MergeList(SqList La, SqList Lb, SqList &Lc)

void Inverse(SqList &Lc)

​完成以上几个函数,实现手工创建两个非递减序列存放于La和 Lb中,并调用MergeList实现数据的合并。合并之后用Inverse把Lc中的数据就地逆置(不占用太多额外辅助空间,空间复杂度为常数级别)。

关于程序健壮性的内容:

​1、对于插入与删除位置若不合法请给出适当提醒

​2、若输入的数据不是非递减排列可通过自己写的sort()函数排序后再进行后续操作

2. 一元多项式的相加与相乘

实验目的:

​ 根据所给的一元多项式相加的程序,写出一元多项式相乘的程序并调试通过。

实验要求:

​ 1、写出一元多项式的横向输出方式,当系数为零时,要求重新输入数据。

​ 2、把加法改写成Lc=La+Lb,方便进行 Lc=La*Lb

3. 链栈与循环队列的练习

实验要求:

​1、用堆栈(链栈)实现括号匹配算法,其中要求对所给出字符串中的{}、【】、()均可检测是否匹配。

​2、借助循环队列实现将堆栈中的给定值删除。

4. 字符串块链的实现

实现以下函数:

//将一个不包含’#’字符串str赋值到块链类型变量T中

void strassign(Lstring &T,char *str)

//将一个块链T中的所有结点释放,最终使得T.head=T.tail=null T.curlen=0

void clrstring(Lstring &T)

//打印一个存放在块链T中的字符串

void strprint(Lstring T)

//将块链S插入到块链T中第pos个字符之前

void strinsert(Lstring &T,int pos,Lstring S)

//将块链T中间的’#’去掉,重新放入块链T中

void zip(Lstring &T)

实例主程序:

int main( )

{

char s[100]; lstring T1,T2;

printf(“\n请输入第一个长度不超过100个字符的字 符串(不包含字符\'#\'):");

gets(s);

strassign(T1,s);

strprint(T1);

printf("\n请输入第二个长度不超过100个字符的字符串(不包含字符\'#\'):");

gets(s);

strassign(T2,s);

strprint(T2);

strinsert(T1,5,T2); zip(T1);

strprint(T1);getchar();

return 0;

}

5. 二叉树的基本算法实现

实验目的:

​ 用二叉链表存储方式存储二叉树,并实现以下相关算法:

​1、创建二叉树

​2、用非递归算法先中后序遍历二叉树

​3、分别求出二叉树中度为0、1、2的结点个数

​4、求出树的高度

6. 图的基本算法实现

实验目的:

​ 用邻接表存储方式存储有向图,并实现以下相关算法:

​1、创建有向图的邻接表

​2、分别用深度优先和广度优先遍历有向图

​3、对创建的有向图进行拓扑排序

7. 二叉排序树的基本算法实现

实验目的:

​ 用二叉链表存储方式存储二叉排序树,并实现以下相关算法:

​1、创建二叉排序树

​2、在二叉排序树上实现查询、插入和删除算法

​3、对二叉排序树进行中序遍历以判断目标2是否完成

8. 排序方法的算法实现

实验目的:

​ 用顺序表存储方式存储实验数据,并实现以下相关算法:

​1、希尔排序

​2、快速排序

​3、堆排序

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值