随笔分类 -  数据结构

摘要:用迪杰斯特拉算法实现有向网的最短路径 输入格式: 第一行输入有向网的顶点和边数,第二行输入各顶点值,用空格间隔,第三行开始输入各条边的 两个点的及边上的权值,用空格间隔。最后一行输入要求路径的两个顶点。 输出格式: 输出最短路径经过的各顶点,中间用-->连接。 输入样例: 在这里给出一组输入。例如: 阅读全文
posted @ 2022-05-23 20:52 慢漫曼蔓 阅读(81) 评论(0) 推荐(0)
摘要:给定一系列整型关键字和素数P,用除留余数法定义的散列函数H(Key)=Key将关键字映射到长度为P的散列表中。用线性探测法解决冲突。 输入格式: 输入第一行首先给出两个正整数N(≤1000)和P(≥N的最小素数),分别为待插入的关键字总数、以及散列表的长度。第二行给出N个整型关键字。数字间以空格分隔 阅读全文
posted @ 2021-12-07 21:28 慢漫曼蔓 阅读(82) 评论(0) 推荐(0)
摘要:试实现线性探测法的查找函数。 函数接口定义: Position Find( HashTable H, ElementType Key ); 其中HashTable是开放地址散列表,定义如下: #define MAXTABLESIZE 100000 /* 允许开辟的最大散列表长度 */ typedef 阅读全文
posted @ 2021-12-07 21:26 慢漫曼蔓 阅读(266) 评论(0) 推荐(0)
摘要:本题要求实现六个函数,顺序表为整型数据,可实现输入、输出、取值、查找、插入、删除功能。输入样例与输出样例对应情况见下图。 int GetElem(SqList L, int i, ElemType &e) // 顺序表的取值 { if(i<1||i>L.length)//i值不合理的情况 retur 阅读全文
posted @ 2021-12-07 21:25 慢漫曼蔓 阅读(45) 评论(0) 推荐(0)
摘要:本题要求实现一趟希尔排序函数,待排序列的长度1<=n<=1000。 函数接口定义: void ShellInsert(SqList L,int dk); 其中L是待排序表,使排序后的数据从小到大排列。###类型定义: typedef int KeyType; typedef struct { Key 阅读全文
posted @ 2021-12-04 23:15 慢漫曼蔓 阅读(74) 评论(0) 推荐(0)
摘要:本题要求实现直接插入排序函数,待排序列的长度1<=n<=1000。 函数接口定义: void InsertSort(SqList L); 其中L是待排序表,使排序后的数据从小到大排列。###类型定义: typedef int KeyType; typedef struct { KeyType *el 阅读全文
posted @ 2021-12-04 23:13 慢漫曼蔓 阅读(36) 评论(0) 推荐(0)
摘要:本题要求实现二路归并排序中的归并操作,待排序列的长度1<=n<=1000。 函数接口定义: void Merge(SqList L,int low,int m,int high); 其中L是待排序表,使排序后的数据从小到大排列。###类型定义: #include<stdio.h> #include< 阅读全文
posted @ 2021-12-03 21:57 慢漫曼蔓 阅读(62) 评论(0) 推荐(0)
摘要:本题要求实现堆排序中的筛选函数,待排序列的长度1<=n<=1000。 函数接口定义: void HeapAdjust( HeapType H, int s, int m); 其中L是待排序表,使排序后的数据从小到大排列。###类型定义: typedef int KeyType; typedef st 阅读全文
posted @ 2021-11-29 23:35 慢漫曼蔓 阅读(88) 评论(0) 推荐(0)
摘要:本题要求实现快速排序的一趟划分函数,待排序列的长度1<=n<=1000。 函数接口定义: int Partition ( SqList L, int low, int high ); 其中L是待排序表,使排序后的数据从小到大排列。###类型定义: typedef int KeyType; typed 阅读全文
posted @ 2021-11-26 01:43 慢漫曼蔓 阅读(127) 评论(0) 推荐(0)
摘要:编写程序,实现由邻接表存储实现图的深度优先搜索遍历的功能。顶点为字符型。 输入格式: 第一行输入顶点个数及边的个数,第二行依次输入各顶点,第三行开始依次输入边的两个顶点,用空格分开。最后输入深度优先遍历的起始点。 输出格式: 输出深度优先遍历结果,空格分开,若起始点不合理,则输出error。 输入样 阅读全文
posted @ 2021-11-25 20:51 慢漫曼蔓 阅读(57) 评论(0) 推荐(0)
摘要:输入一组整型权值,构建哈夫曼树,实现哈夫曼编码,并输出带权路径长度。 输入格式: 第一行输入叶子结点个数,接着依次输入权值。 输出格式: 输出哈夫曼编码,输出带权路径长度。 输入样例: 在这里给出一组输入。例如: 85 29 7 8 14 23 3 11 输出样例: 在这里给出相应的输出。例如: 5 阅读全文
posted @ 2021-11-25 10:39 慢漫曼蔓 阅读(174) 评论(0) 推荐(0)
摘要:本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。 函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementTyp 阅读全文
posted @ 2021-11-24 22:37 慢漫曼蔓 阅读(76) 评论(0) 推荐(0)
摘要:队列实现回文字符串判断 #include<stdio.h>#include<queue>#include<cstring>using namespace std;int main(){ queue <char>q; char a[100]; scanf("%s",&a); int len=strle 阅读全文
posted @ 2021-09-28 21:16 慢漫曼蔓 阅读(22) 评论(0) 推荐(0)
摘要:数据结构用栈实现回文串判断 #include<stdio.h>#include<stdlib.h>#include<stack>using namespace std;int main(){ stack <char>s; char str[100]; int len; scanf("%d\n",&l 阅读全文
posted @ 2021-09-27 21:18 慢漫曼蔓 阅读(23) 评论(0) 推荐(0)
摘要:将编号0和1两个栈存放于一个数组空间V[m]中,栈底分别位于数组的两端。当0号栈的栈顶指针top[0] = -1时该栈为空,当1号栈的栈顶指针top[1]等于m时,该栈为空。两个栈均从两端向中间增长 阅读全文
posted @ 2021-09-22 21:26 慢漫曼蔓 阅读(84) 评论(0) 推荐(0)
摘要:1.直接解决:为每个栈开辟一个数组空间。 2.顺序栈单向延伸——使用一个数组来存储两个栈 两栈共享空间:使用一个数组来存储两个栈,让一个栈的栈底为该数组的始端,另一个栈的栈底为该数组的末端,两个栈从各自的端点向中间延伸。 阅读全文
posted @ 2021-09-21 20:58 慢漫曼蔓 阅读(192) 评论(0) 推荐(0)
摘要:#include <stdio.h> #include <stdlib.h> typedef int ElementType; typedef struct Node *PtrToNode; struct Node { ElementType Data; PtrToNode Next; }; typ 阅读全文
posted @ 2021-09-20 22:34 慢漫曼蔓 阅读(276) 评论(0) 推荐(0)