随笔分类 - 数据结构
数据结构课程的作业、实验、测试
摘要:7-4 先序和中序构造二叉树 本题目要求用先序序列和中序序列构造一棵二叉树(树中结点个数不超过10个),并输出其后序序列。 输入格式: 在第一行中输入元素个数。 第二行中输入先序序列,用空格分隔。 第三行中输入中序序列,用空格分隔。 输出格式: 输出此二叉树的后序序列,用空格分隔,最后也有一个空格。
阅读全文
摘要:图书的采编入库功能——输入图书基本信息并保存到文件中; 图书的显示库存功能——显示出库存图书的基本信息; 图书的查询功能——根据书名查询图书信息,并显示查询结果; 图书的借阅功能——输入借阅基本信息,改变图书现存量; 图书的归还功能——注销对借阅者的登记,改变该书的现存量; 图书的删除功能——根据书
阅读全文
摘要:N个村庄,从1到N编号,现在请您兴建一些路使得任何两个村庄彼此连通。我们称村庄A和B是连通的,当且仅当在A和B之间存在一条路,或者存在一个存在C,使得A和C之间有一条路,并且C和B是连通的。已知在一些村庄之间已经有了一些路,您的工作是再兴建一些路,使得所有的村庄都是连通的,并且兴建的路的长度是最小的
阅读全文
摘要:功能 录入书籍,删除书籍,查询书籍,借书,还书 但是录入书籍存在重复情况,无法修改数目 #include<iostream> using namespace std; #include<fstream> #define filename "booklist.txt" #include<list> #
阅读全文
摘要:7-2 关键路径 假定一个工程由若干子任务构成,使用一个包含n个顶点、e条边的AOE网表示该工程,顶点编号为1至n,有向边表示该工程的每个子任务,边的权值表示完成该子任务所需的时间,假定网中只含一个源点和一个汇点。请编写程序求出该工程的所有关键活动,并计算完成该工程所需的最短时间。 输入格式: 每个
阅读全文
摘要:7-1 jmu-ds-实现KMP 给两个字符串A、B, 从A中找出第一次出现B的位置。 输入格式: 第一行输入一个整数n,表示测试数据的个数 对于每组测试数据,输入两个字符串S T,S和T中间用一个空格隔开,每组数据占一行。 输出格式: 对于每组测试数据,输出A中找出第一次出现B的位置,如果A不包含
阅读全文
摘要:6-1 查找二叉排序树 要求在二叉排序树中查找指定的关键字,并在查找过程中输出查找过程中历经的节点。 函数接口定义: typedef int KeyType; //定义关键字类型 typedef struct node //记录类型 { KeyType key; //关键字项 struct node
阅读全文
摘要:本题要求实现一趟希尔排序函数,待排序列的长度1<=n<=1000。 函数接口定义: void ShellInsert(SqList L,int dk); 其中L是待排序表,使排序后的数据从小到大排列。 ###类型定义: typedef int KeyType; typedef struct { Ke
阅读全文
摘要:本题要求实现直接插入排序函数,待排序列的长度1<=n<=1000。 函数接口定义: void InsertSort(SqList L); 其中L是待排序表,使排序后的数据从小到大排列。 ###类型定义: typedef int KeyType; typedef struct { KeyType *e
阅读全文
摘要:本题要求实现二路归并排序中的归并操作,待排序列的长度1<=n<=1000。 函数接口定义: void Merge(SqList L,int low,int m,int high); 其中L是待排序表,使排序后的数据从小到大排列。 ###类型定义: #include<stdio.h> #include
阅读全文
摘要:本题要求实现快速排序的一趟划分函数,待排序列的长度1<=n<=1000。 函数接口定义: int Partition ( SqList L,int low, int high ); 其中L是待排序表,使排序后的数据从小到大排列。 ###类型定义: typedef int KeyType; typed
阅读全文
摘要:本题要求实现堆排序中的筛选函数,待排序列的长度1<=n<=1000。 函数接口定义: void HeapAdjust( HeapType H, int s, int m); 其中L是待排序表,使排序后的数据从小到大排列。 ###类型定义: typedef int KeyType; typedef s
阅读全文
摘要:给定一系列整型关键字和素数P,用除留余数法定义的散列函数H(Key)=Key将关键字映射到长度为P的散列表中。用线性探测法解决冲突。 输入格式: 输入第一行首先给出两个正整数N(≤1000)和P(≥N的最小素数),分别为待插入的关键字总数、以及散列表的长度。第二行给出N个整型关键字。数字间以空格分隔
阅读全文
摘要:试实现线性探测法的查找函数。 函数接口定义: Position Find( HashTable H, ElementType Key ); 其中HashTable是开放地址散列表,定义如下: #define MAXTABLESIZE 100000 /* 允许开辟的最大散列表长度 */ typedef
阅读全文
摘要:用迪杰斯特拉算法实现有向网的最短路径 输入格式: 第一行输入有向网的顶点和边数,第二行输入各顶点值,用空格间隔,第三行开始输入各条边的 两个点的及边上的权值,用空格间隔。最后一行输入要求路径的两个顶点。 输出格式: 输出最短路径经过的各顶点,中间用-->连接。 输入样例: 在这里给出一组输入。例如:
阅读全文
摘要:编写程序,实现由邻接表存储实现图的深度优先搜索遍历的功能。顶点为字符型。 输入格式: 第一行输入顶点个数及边的个数,第二行依次输入各顶点,第三行开始依次输入边的两个顶点,用空格分开。最后输入深度优先遍历的起始点。 输出格式: 输出深度优先遍历结果,空格分开,若起始点不合理,则输出error。 输入样
阅读全文
摘要:有两张非递增有序的线性表A,B,采用顺序存储结构,两张表合并用c表存,要求C为非递减有序的,然后删除C表中值相同的多余元素。元素类型为整型 输入格式: 第一行输入输入表A的各个元素,以-1结束,中间用空格分隔;第二行输入表B的各个元素,以-1结束,中间用空格分隔。 输出格式: 输出结果为表C的非递减
阅读全文
摘要:使用键盘输入数学表达式(含数字,四种运算符+、-、、/和小括号,其中运算数都是一位数(0~9)),将数学表达式转化成后缀表达式输出,利用后缀表达式求表达式的值并输出。 输入格式: 输入正确的表达式(可以有空格)后回车,得到后缀表达式和结果。输入括号缺失的表达式,输出"ERROR:缺少括号"。输入两个
阅读全文
摘要:输入一组整型权值,构建哈夫曼树,实现哈夫曼编码,并输出带权路径长度。 输入格式: 第一行输入叶子结点个数,接着依次输入权值。 输出格式: 输出哈夫曼编码,输出带权路径长度。 输入样例: 在这里给出一组输入。例如: 8 5 29 7 8 14 23 3 11 结尾无空行 输出样例: 在这里给出相应的输
阅读全文
摘要:编写一个程序判断一个字符串是否是回文。回文是指一个字符序列以中间字符为基准两边字符完全相同,如字符序列"ABCDEDCBA"就是回文,而字符序列"ABCDEDBAC"就不是回文。空格不计入字符 输入格式: 输入字符串如:"12321"或"1 2 32 1" 输出格式: 若是回文则输出"该字符串是回文
阅读全文