
数据结构
rain699
这个作者很懒,什么都没留下…
展开
-
逆波兰式
逆波兰式Description假设表达式由单字母变量和双目四则运算符构成,试编写程序,将一个通常书写形式且书写正确的表达式转换为逆波兰式。Input输入由单字母变量和双目四则运算算符构成的表达式。Output输出其逆波兰式。Sample Input (a+b)*cSample Output ab+c*更多测试用例如下:输...原创 2018-03-30 17:34:22 · 2003 阅读 · 0 评论 -
输出以二叉树表示的算数表达式(严6.51)
Description编写程序,输出以二叉树表示的算术表达式,若该表达式中含有括号,则在输出时应添上。Input按先序输入一行字符,其中#表示取消建立子树结点,即所有叶子结点均为#。Output输出该二叉树所表示的算术表达式(若表达式中含有括号,则在输出时应添上)Sample Input *+a(###b#)##c##...原创 2018-04-25 09:54:23 · 980 阅读 · 2 评论 -
线性表的就地逆置
实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,…,an),逆置为(an,an-1,…,a1)。#include<stdio.h>#include<stdlib.h>typedef int elemtype;#define maxsize 100typedef struct{ elemtype elem[maxsize]; ...原创 2018-03-30 17:49:53 · 7518 阅读 · 3 评论 -
建立二叉树的二叉链表存储结构(严6.70)
Description如果用大写字母标识二叉树结点,则一棵二叉树可以用符合下面语法图的字符序列标识,试编写递归程序,由这种形式的字符序列,建立相应的二叉树的二叉链表存储结构(附图见《严蔚敏:数据结构题集(C语言版)》第45页6.70)Input输入如图所示的字符序列Output建立相应二叉树的二叉链表存储结构,并先序遍历输出Sam...原创 2018-04-25 08:47:22 · 4775 阅读 · 0 评论 -
单链表的归并
假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。试编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来的两个单链表结点存放归并后的单链表。#include<stdio.h>#include<stdlib.h>typedef struct Node{int data;struct Node*next;}Node,...原创 2018-03-30 18:11:47 · 1321 阅读 · 0 评论 -
建立二叉树的二叉链表(严6.65)根据先序序列和中序序列输出后序序列
Description已知一棵二叉树的前序序列和中序序列分别存于两个一维数组中,试编写算法建立该二叉树的二叉链表Input分两行分别输入一棵二叉树的前序序列和中序序列。Output输出该二叉树的后序序列。SampleInput ABDFGCEH BFDGA...原创 2018-04-24 21:07:41 · 7701 阅读 · 1 评论 -
计算二叉树叶子结点数目(耿6.14)
Description二叉树按照二叉链表方式存储,编写程序,计算二叉树中叶子结点的数目。Input按先序输入二叉树各节点,其中#表示取消建立子树结点。Output输出二叉树中叶子数目的结点Sample Input ABD##EH###CF#I##G##Sample Output 4...原创 2018-04-24 13:20:22 · 600 阅读 · 0 评论 -
以三元组表为存储结构实现矩阵相加
Description假设稀疏矩阵A和B均以三元组表作为存储结构,试编写矩阵相加的程序,另设三元组表C存放结果矩阵。矩阵大小为m行n列Input第一行输入t1,t2,t1和t2分别是矩阵A和B中非零元素的个数,后面t1+t2行分别输入A和B中的元素,用三元组表示。Output输出三元组表CSample Input3 3...原创 2018-04-04 00:15:49 · 5926 阅读 · 0 评论 -
LOCATE(不会)
#include<stdio.h>#include<string.h>#include<stdlib.h>struct student{ char name[100]; int num;}s[100];struct st{ char na[100]; int nu;}b[100];int main(){ ...原创 2018-03-30 18:18:29 · 394 阅读 · 0 评论 -
表达式括号匹配
#include<stdio.h>#include<string.h>#include<stdlib.h>#define Stack_Size 50typedef struct{ char elem[Stack_Size];//用来存放栈中元素的一维数组 int top;/*用来存放栈顶元素的下标,top为-1代表空栈*/}Se...原创 2018-03-30 18:21:46 · 706 阅读 · 1 评论 -
单链表的删除(交并集链表)
/*单链表的删除删除那些A中的既在B中存在又在C中存在的元素例如A 1 2 3 4 5 6 6 7 B 2 3 5 9 12 C 2 4 5 6 12 13*///具体的格式可以从数据结构C语言描述p51 p53合并两个有序的单链表得到启示。#include<stdio.h>#include<stdlib.h>typedef struct Nod...原创 2018-03-30 18:16:00 · 304 阅读 · 0 评论 -
基于图的深度优先搜索策略(耿7.10)
Description试基于图的深度优先搜索策略编写程序,判别以邻接表方式存储的有向图中,是否存在由顶点vi到vj的路径(i不等于j),注意:程序中涉及的图的基本操作必须在此存储结构上实现。Input第一行输入有向图的顶点数n和边数m,用空格隔开;第二行输入顶点信息;分m行输入有向图边的信息,例如顶点对1,2表示从顶点1到顶点2的一条弧,最后一行输入待判别的顶点对...原创 2018-04-28 22:22:18 · 1832 阅读 · 0 评论 -
哈夫曼编/译码器
Description写一个哈夫曼码的编/译码系统,要求能对要传输的报文进行编码和解码。构造哈夫曼树时,权值小的放左子树,权值大的放右子树,编码时右子树编码为1,左子树编码为0。Input输入表示字符集大小为n(n<=100)的正整数,以及n个字符和n个权值(正整数,值越大表示该字符出现的概率越大);输入串长小于或等于100的目标报文。Outpu...原创 2018-05-05 20:57:35 · 826 阅读 · 0 评论 -
Dijkstra算法(严7.42)
Description编写程序,实现以邻接表作存储结构,求从源点到其余各顶点的最短路径的Dijkstra算法。Input第一行输入顶点数n和边数m;第二行输入顶点信息;分m行输入m对顶点vi,vj(表示由顶点vi到顶点vj(i不等于j)的边)以及该弧的权值(0<m,n<100)Output输出从源点到其余各顶点的最短路径(不可达用-1表示)。Sample In...原创 2018-05-12 23:17:50 · 1339 阅读 · 0 评论 -
二叉排序树的插入和删除(课本函数大杂烩)
#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef struct node{ int data; struct node*lchild; struct node*rchild;}BiTNode,*BiTree;void creat(BiTree*root)...原创 2018-05-25 21:38:51 · 702 阅读 · 0 评论 -
二叉排序树的合并
#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef struct node{ int data; struct node*lchild; struct node*rchild;}BiTNode,*BiTree;void creat(BiTree*roo...原创 2018-05-25 21:25:28 · 1210 阅读 · 0 评论 -
二叉排序树的判定
#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef struct node{ int data; struct node*lchild; struct node*rchild;}BiTNode,*BiTree;void creat(BiTree*roo...原创 2018-05-25 11:22:53 · 2666 阅读 · 0 评论 -
构造哈希表(耿8.12)
H(22)=0; H(41)=2; H(53)=5; H(46)=6; H(30)=2; H(13)=6; H(01)=3; H(67)=3;哈希表为哈希表 22 41 30 01 53 46 13 67 故知等概率情况下查找成功的平均查找长度是1/8 * (1+1+1+1+2+...原创 2018-05-24 22:02:40 · 563 阅读 · 0 评论 -
实验4.2:用迪杰斯特拉算法求赋权图中的最短路径(可记录输出路径)
PE了很长时间,然后发现是栈没有初始化的缘故.......。代码中附加了另外一组测试用例输出路径的思路就是压栈出栈。Description用迪杰斯特拉算法求一点到其余所有结点的最短路径。Input先输入一个小于100的正整数n,然后输入图的邻接矩阵(10000表示无穷大,即两点之间没有边),最后输入两个0到n-1的整数表示两个点。Output先用迪杰斯特拉算法求给定的第...原创 2018-05-24 21:36:59 · 2135 阅读 · 0 评论 -
实验4-3:用弗洛伊德算法求赋权图的两点间的最短路径的长度。
Description用弗洛伊德算法求任意两点间的最短路径的长度。Input先输入一个小于100的正整数n,然后输入图的邻接矩阵(10000表示无穷大,即两点之间没有边),之后再输入一个小于100的正整数m,最后的m行每行输入两个不同的0到n-1之间的整数表示两个点。Output用弗洛伊德算法求任意两点间的最短路径的长度,并输出这些两个点之间的最短路径长度。Sample I...原创 2018-05-19 22:13:54 · 1706 阅读 · 0 评论 -
实验4-1:求赋权图中一个结点到所有结点的最短路径的长度
22题简单改一下就过了Description给一个赋权图(无向图),求0号结点到其余所有节点的最短路径的长度。Input先输入一个小于等于100的正整数n,然后输入赋权图的邻接矩阵(10000表示无穷大,并且任意一条简单路径的长度都小于10000)Output按结点编号的顺序输出0号结点所有结点的最短路径的长度。Sample Input60 1 4 10000 ...原创 2018-05-19 15:37:48 · 2197 阅读 · 0 评论 -
顺序表的插入运算
顺序表的插入运算Time Limit 3000ms ,Memory Limit 10000KBDescription已知顺序表L递增有序,编写程序,将X插入到线性表的适当位置上,以保持线性表的有序性。Input第一行输入顺序表元素个数elenum;(0<elenum<1000)第二行输入顺序表L;第三行输入插入值X....原创 2018-03-30 17:46:04 · 3150 阅读 · 0 评论 -
基于图的广度优先搜索策略(耿7.11)
Description试基于图的广度优先搜索策略编写程序,判别以邻接表方式存储的有向图中,是否存在由顶点vi到vj的路径(i不等于j),注意:程序中涉及的图的基本操作必须在此存储结构上实现。Input第一行输入有向图的顶点数n和边数m,用空格隔开;第二行输入顶点信息;分m行输入有向图边的信息,例如顶点对1,2表示从顶点1到顶点2的一条弧,最后一行输入待判别的顶点对vi,...原创 2018-05-05 23:11:32 · 2687 阅读 · 0 评论 -
交并集问题
Description已知A,B,C为三个元素值递增有序的线性表,要求对表A如下运算:删去那些既在表B中出现又在表C中出现的元素。线性表以顺序结构,编写实现上述运算和算法。Input第一行输入三个正整数m,n,用空格隔开,分别表示三个线性表的元素个数,其后三行依次输入ABC表中的元素。Output输出实现上述操作后的A表。Sample Input...原创 2018-03-30 18:04:01 · 991 阅读 · 0 评论