数据结构实验
花间小王子
这个作者很懒,什么都没留下…
展开
-
实验十内部排序
实验十内部排序完善“参考源程序”,进行典型内部排序算法的比较。(1) 随机产生整数样本,进行8种排序,并比较各种排序算法的执行时间,如执行时间均为0,可考虑增大样本,如加大至5000或10000。(2) 设计方案,修改“12.11.4 参考源程序”,对8种排序算法的数据元素比较次数和移动次数进行比较。(3) 输出8种排序算法每一趟排序的输出结果。# include <stdio.h># include <stdlib.h># include <time.h>原创 2021-12-29 09:38:03 · 1017 阅读 · 0 评论 -
实验九查找
实验九查找实现哈希表的构造和查找算法,要求:用除留余数法构造哈希函数,分别采用二次探测再散列、链地址法解决冲突。#include<stdio.h>#include<stdlib.h>#include<math.h>typedef struct{ int key;}keytype; typedef struct { keytype elem[100]; int length; /*当前的长度*/ int size;原创 2021-12-29 09:33:56 · 308 阅读 · 0 评论 -
实验八图及其应用
实验八图及其应用**设计并验证如下算法:带权图采用邻接表表示,实现有向图的广度优先搜索与无向图的深度优先搜索。#define MAX_VERTEX_NUM 20 //图的邻接表存储表示typedef struct ArcNode{int adjvex; //该弧所指向的顶点的位置struct ArcNode *nextarc; //指向下一条弧的指针InfoType info; //该弧相关信息的指针}ArcNode;typedef struct原创 2021-12-29 09:32:28 · 493 阅读 · 0 评论 -
实验七二叉树的非递归遍历及应用
实验七二叉树的非递归遍历及应用设计并验证如下算法:输入一棵二叉树的广义表形式,建立该二叉树的二叉链表结构,按层次遍历该二叉树,打印指定结点所在的层次,并求该二叉树的宽度。#include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef .原创 2021-12-29 09:29:46 · 468 阅读 · 0 评论 -
实验六二叉树的递归遍历及应用
实验六二叉树的递归遍历及应用在完善“12.6.4 参考源程序”的前提下,设计并验证如下算法:按中序建立两棵二叉树的二叉链表结构,判断两棵二叉树是否相等,分别求其高度、总结点数目、单分支结点数目、叶结点数目。#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>typedef struct BiTNode{ char data; struct BiTNode原创 2021-12-29 09:27:57 · 1065 阅读 · 0 评论 -
实验五数组及其应用
实验五数组及其应用1.(必做题) 设计并实现稀疏矩阵运算器。(1) 以三元组顺序表存储稀疏矩阵,实现两个矩阵的相加、相减与转置。(2) 根据屏幕菜单的选择,可以进行稀疏矩阵的相加、相减与转置,且能进行输入数据出错的处理,例如参与相加运算的两个矩阵行数和列数不同,等等。(3) 矩阵的输入、输出均为矩阵形式。#include<stdio.h>#define MAXSIZE 10000typedef struct{ int i,j,e; //行下表和列下标 }原创 2021-12-29 09:25:15 · 331 阅读 · 0 评论 -
实验四栈和队列的综合应用
实验四栈和队列的综合应用1.(必做题)迷宫问题。假设迷宫由m行n列构成,有一个入口和一个出口,入口坐标为(1,1),出口坐标为(m,n),试设计并验证以下算法:找出一条从入口通往出口的路径,或报告一个“无法通过”的信息。(1) 用C语言实现顺序存储结构上队列的基本操作,然后利用该队列的基本操作找出迷宫的一条最短路径。(2) 设计一个二维数组MAZE[m+2][n+2]表示迷宫,数组元素为0表示该位置可以通过,数组元素为1表示该位置不可以通行。MAZE[1][1]、MAZE[m][n]分别为迷宫的入口和原创 2021-12-29 09:22:09 · 413 阅读 · 0 评论 -
实验三栈及其应用
实验三栈及其应用1. (必做题) 设计并验证以下算法:设一个算术表达式中包含圆括号、方括号和花括号,判断其中的括号是否匹配。(1) 算术表达式中可以包含三种括号“(”和“)”、“[”和“]”、“{”和“}”,并且这三种括号可以按任意的次序嵌套使用。比如,…[…{…}[…]]…(…)…。(2) 设置一个运算符栈OPTR。当遇到的‘(’、‘[’或‘{’时进栈;当遇到‘(’、‘[’或‘{’时,判断栈顶是否为相应的括号,若是则退栈继续执行,否则提示出错并结束。(3) 要求由键盘输入包括‘(’、‘[’或‘{’原创 2021-12-29 09:19:19 · 478 阅读 · 0 评论 -
实验二线性表的链式存储结构
实验二线性表的链式存储结构1.(必做题) 设计并验证以下算法:带头结点单向循环链表L中的数据元素为整数且非递增有序,删除L中所有值大于mink且小于maxk的元素(若表中存在这样的元素),并将删除后链表L分解成两个带头结点单向循环链表L1、L2,使两个链表中各自仅含奇数或偶数。(1) 根据键盘输入数据用头插法建立带头结点单向循环链表L。(2) 利用原带头结点单向循环链表L的结点空间构成链表L1、L2。(3) 输出带头结点单向循环链表L、删除后的链表L、拆分后的带头结点单向循环链表L1、L2。#in原创 2021-12-29 09:14:31 · 942 阅读 · 0 评论 -
实验一线性表的顺序存储结构
实验一线性表的顺序存储结构1.(必做题) 以顺序表表示集合,编制一个能演示执行集合的并、交、差、补运算的程序。(1) 集合的元素限定为小写字母字符(‘a’…’z’),集合输入的形式为一个以“回车符”为结束标志的字符串,串中字符顺序不限,且允许出现重复字符或非法字符,程序应能自动滤去。输出的运算结果字符串中将不含重复字符和非法字符。(2) 演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”后,由用户在键盘上输入演示程序中规定的运算命令,相应的输入数据(滤去输入中的非法字符)和运算结果原创 2021-12-29 09:09:02 · 833 阅读 · 0 评论