数据结构作业
文章平均质量分 78
铁锅炖鱼,铜锅涮肉
火龙果奇异果芒果橙子和石榴
展开
-
数据结构28——高精度计算PI值
题目:输入n,输出PI精确到小数点后n位的PI值。#include<stdio.h>#include<stdlib.h>typedef struct node { int data; struct node*next; struct node*pre;}node,*list;int n;void init(list &l){ list...原创 2018-03-29 21:33:31 · 6116 阅读 · 5 评论 -
数据结构实验34——求赋权图中一个结点到所有结点的最短路径的长度
Description给一个赋权图(无向图),求0号结点到其余所有结点的最短路径的长度。Input先输入一个小于等于100的正整数n,然后输入赋权图的邻接矩阵(10000表示无穷大,并且任意一条简单路径的长度都小于10000)Output按结点编号的顺序输出0号结点所有结点的最短路径的长度。Sample Input 60 1 4 10000 10000 100001 0 2 7 5 10000...原创 2018-05-23 12:55:34 · 1882 阅读 · 0 评论 -
数据结构11——循环右移(耿5.2)
Description编写程序,将一维数组A(下标从1开始)中的元素循环右移k位,要求只用一个元素大小的附加存储。Input第一行输入一维数组A的长度n和循环位移位数k(0<n<100;0<k<100),用空格分开。第二行输入n个元素。Output输出循环右移k位后的一维数组。Sample Input 6 31 2 3 4 5 6 Sample Output4 5 6 1...原创 2018-05-28 17:26:39 · 1108 阅读 · 0 评论 -
数据结构12——以三元组表为存储结构实现矩阵相加(耿5.7)
以三元组表为存储结构实现矩阵相加(耿5.7)Time Limit: 3000ms, Memory Limit: 10000KB , Accepted: 247, Total Submissions: 1092Description假设稀疏矩阵A和B均以三元组表作为存储结构。试编写矩阵相加的程序,另设三元组表C存放结果矩阵。矩阵大小为m行n列(0<m,n<100)Input第一行输...原创 2018-05-29 19:28:16 · 4292 阅读 · 1 评论 -
数据结构24——二叉排序树的合并(严9.38)
Description试编写程序,将两棵二叉排序树合并为一棵二叉排序树。Input按照先序序列,分两行输入两棵二叉排序树各结点(结点值大于0),其中-1表示取消建立子树结点。Output按照中序序列输出合并后的二叉排序树。 Sample Input 12 8 4 -1 -1 10 -1 -1 16 13 -1 -1 18 -1 -117 6 2 -1 -1...原创 2018-06-20 17:52:04 · 2972 阅读 · 0 评论 -
数据结构13——以十字链表为存储结构实现矩阵相加(严5.27)
Description以十字链表为存储结构,编写程序,将稀疏矩阵B加到稀疏矩阵A上。Input第一行输入四个正整数,分别为稀疏矩阵A和稀疏矩阵B的行数m、列数n、稀疏矩阵A的非零元素个数t1和稀疏矩阵B的非零元素个数t2。接下来的t1+t2行三元组表示,其中第一个元素表示非零元素所在的行值,第二个元素表示非零元素所在的列值,第三个元素表示非零元素的值。Output输出相加后的矩阵三元组。Sampl...原创 2018-05-30 20:49:19 · 1724 阅读 · 0 评论 -
数据结构14——求广义表深度(严5.30)
Description试按表头、表尾的分析方法编写求广义表的深度的递归程序。Input输入一串以‘(’开始,以‘(’结束的字符串,并且输入的左右括号必须匹配,如:(),(())……Output分别输出按表头、表尾分析方法求广义表深度的结果,每个结果占一行。Sample Input ((a,b,(c,(d,e),f)),g)Sample Output44#include<stdio.h>...原创 2018-06-08 15:59:46 · 5304 阅读 · 3 评论 -
数据结构15——建立二叉树的二叉链表存储结构(严6.70)
Description如果用大写字母标识二叉树结点,则一颗二叉树可以用符合下面语法图的字符序列表示。试编写递归程序,由这种形式的字符序列,建立相应的二叉树的二叉链表存储结构(附图见《严蔚敏:数据结构题集(C语言版)》第45页6.70)。Input输入如图所示的字符序列。Output建立相应二叉树的二成叉链表存储结构,并先序遍历输出。Sample Input A(B(#,D),C(E(#,F),#)...原创 2018-06-08 19:53:31 · 7462 阅读 · 3 评论 -
数据结构16——计算二叉树叶子结点数目(耿6.14)
Description二叉树按照二叉链表方式存储,编写程序,计算二叉树中叶子结点的数目。Input按先序输入二叉树各结点,其中#表示取消建立子树结点。Output输出二叉树中叶子节点的数目。Sample Input ABD##EH###CF#I##G##Sample Output4#include<stdio.h>#include<stdlib.h>typedef s...原创 2018-06-08 20:43:30 · 1800 阅读 · 0 评论 -
数据结构17——输出以二叉树表示的算术表达式(严6.51)
Description编写程序,输出以二叉树表示的算术表达式,若该表达式中含有括号,则在输出时应添上。Input按先序输入一行字符,其中#表示取消建立子树结点,即所有叶子节点均为#。Output输出该二叉树所表示的算术表达式(若表达式中含有括号,则在输出时应添上)。Sample Input *+a(###b#)##c##Sample Output(a+b)*c#include<stdio.h...原创 2018-06-08 21:29:33 · 1575 阅读 · 0 评论 -
数据结构19——基于图的深度优先搜索策略(耿7.10)
Description试基于图的深度优先搜索策略编写程序,判别以邻接表方式存储的有向图中,是否存在由顶点vi到顶点vj的路径(i不等于j)。注意:程序中涉及的图的基本操作必须在此存储结构上实现。Input第一行输入有向图的顶点数n和边数m,用空格隔开;第二行输入顶点信息;分m行输入有向图边的信息,例如顶点对1,2表示从顶点1到顶点2的一条弧。最后一行输入待判别的顶点对vi,vj.(0<m,n...原创 2018-06-16 17:16:15 · 2079 阅读 · 0 评论 -
数据结构18——建立二叉树的二叉链表(严6.65)
Description已知一棵二叉树的前序序列和中序序列分别存于两个一维数组中,试编写算法建立该二叉树的二叉链表。Input分两行分别输入一棵二叉树的前序序列和中序序列。Output输出该二叉树的后序序列。Sample Input ABDFGCEHBFDGACEHSample OutputFGDBHECA#include<stdio.h>#include<stdlib.h&g...原创 2018-06-09 17:13:21 · 1992 阅读 · 0 评论 -
数据结构20——基于图的广度优先搜索策略(耿7.11)
Description试基于图的广度优先搜索策略编写程序,判别以邻接表方式存储的有向图中,是否存在由顶点vi到顶点vj(i不等于j)。注意:程序中涉及的图的基本操作必须在此存储结构上实现。Input第一行输入有向图的顶点数n和边数m,用空格隔开;第二行输入顶点信息;分m行输入有向图边的信息,例如顶点对1,2表示从顶点1到顶点2的一条弧。最后一行输入待判别的顶点对vi,vj。(0<m,n<...原创 2018-06-17 21:50:30 · 1193 阅读 · 0 评论 -
数据结构26——二叉排序树的判别(耿8.6)
Description试编写程序,判别给定的二叉树是否为二叉排序树。设此二叉树以二叉链表作存储结构,且树中结点的关键字均不同。Input按先序输入二叉树各结点(结点值大于0),其中-1表示取消建立子树结点。Output若该二叉树为二叉排序树,则输出yes;否则,输出no。Sample Input 12 8 4 -1 -1 10 -1 -1 16 13 -1 -1 18 -1 -1Sample Ou...原创 2018-06-20 10:01:28 · 1185 阅读 · 0 评论 -
数据结构实验33——哈夫曼编译器【抄的】
Description写一个哈夫曼码的编/译码系统,要求能对要传输的报文进行编码和解码。构造哈夫曼树时,权值小的放左子树,权值大的放右子树,编码时右子树编码为1,左子树编码为0。Input输入表示字符集大小为n(n <= 100)的正整数,以及n个字符和n个权值(正整数,值越大表示该字符出现的概率越大);输入串长小于或等于100的目标报文。Output经过编码后的二进制码,占一行;以及对应解...原创 2018-05-16 20:25:24 · 5071 阅读 · 2 评论 -
数据结构08——逆波兰式
Time Limit: 3000ms, Memory Limit: 10000KB , Accepted: 277, Total Submissions: 763Description假设表达式由单字母变量和双目四则运算算符构成。试编写程序,将一个通常书写形式且书写正确的表达式转换为逆波兰式。Input输入由单字母变量和双目四则运算算符构成的表达式。Output输出其逆波兰式。Sample ...原创 2018-05-22 17:41:48 · 2455 阅读 · 0 评论 -
数据结构10——k阶斐波那契数列(严3.32)
Description试利用循环队列编写k阶斐波那契数列中前n+1项 (f(0),f(1),…,f(n))的程序,要求满足: f(n)<=max而f(n+1)>max,其中max为某个约定的常数。(注意:本题所用循环队列的容量仅为k,则在程序执行结束时,留在循环队列中的元素应是所求k阶斐波那契序列中的最后k项 f(n-k+1),…,f(n))。 Input输入常数max(0<ma...原创 2018-05-26 16:39:27 · 1809 阅读 · 0 评论 -
数据结构07——表达式括号匹配
假设一个括号表达式可以包含3种括号:(),{},[],它们可按任意次序嵌套,编写判断表达式中括号是否正确匹配的程序。若正确匹配输出yes,否则输出no。#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct stack{ struct stack *top; struc...原创 2018-03-31 16:26:31 · 1518 阅读 · 0 评论 -
数据结构01——顺序表的插入运算
题目:在升序线性表中插入一个数据,使新的线性表仍是升序排列数组:#include<iostream>using namespace std;int main(){ int ary[1005]; int n,m,i,tmp,flag=0; cin>>n; for(i=0;i<n;i++){ cin>>ary[i]; } cin>...原创 2018-03-23 17:20:35 · 4054 阅读 · 0 评论 -
数据结构02——线性表的就地逆置
题目:输入n,接着输入n个数据,将这n个数据分别以数组,链表的方式逆置。#include<stdlib.h>#include<iostream>using namespace std;typedef struct node{ int num; node* next;}node;int n;int ray[1005];void array(){ i...原创 2018-03-25 21:11:02 · 11855 阅读 · 0 评论 -
数据结构03——顺序表的删除
题目:输入顺序表A,B,C。删去A中B,C公共的元素。#include<stdio.h>#include<stdlib.h>typedef struct node{ int num; struct node* llink; struct node* rlink;}node; node* init(int x){ int i; node *head,*p...原创 2018-03-27 06:55:36 · 1623 阅读 · 0 评论 -
数据结构04——单链表的归并
题目:输入两个数字n,m;输入非递减有序单链顺序表A(元素为n个);输入非递减单链有序顺序表B(元素为m个)。将A,B合并为非递增有序单链顺序表C并输出。(要求用原表空间存放C)输入样例:5 5 1 3 7 12 16 2 6 7 13 20输出样例:20 16 13 12 7 7 6 3 2 1#include<stdio.h...原创 2018-03-27 09:56:59 · 1052 阅读 · 0 评论 -
数据结构05——单链表的删除
题目:#include<stdio.h>#include<stdlib.h>typedef struct node{ int num; struct node* llink; struct node* rlink;}node; node* init(int x){ int i; node *head,*p,*q; head=(node*)mall...原创 2018-03-27 19:25:00 · 1164 阅读 · 0 评论 -
数据结构06——LOCATE操作
题目:输入数字m,n。接着输入m个字符,以双向链表形式输入。链表除了有node *pre,*next,int num,还有char s,初始化num为0;再输入n个字符,如果字符等于list->s,则list->num++。将链表按num非递增顺序输出。#include<stdio.h>#include<stdlib.h>typedef struct no...原创 2018-03-28 18:43:45 · 2325 阅读 · 0 评论 -
数据结构32——稀疏矩阵的乘法
实验2.4:稀疏矩阵的乘法Time Limit: 3000ms, Memory Limit: 10000KB , Accepted: 0, Total Submissions: 0Description计算两个稀疏矩阵的乘法Input首先输入第一个矩阵的行数和列数,再输入该矩阵的三元组形式,以0 0 0结束然后输入第二个矩阵的行数和列数,再输入该矩阵的三元组形式,以0 0 0结束Output...原创 2018-04-18 20:39:22 · 3454 阅读 · 0 评论 -
数据结构29——稀疏矩阵转置
Description输出稀疏矩阵的转置矩阵。(行列均不大于20)Input第一行输入两个正整数n和m,分别表示矩阵的行数和列数,然后输入矩阵三元组,最后输入(0 0 0)表示结束输入。Output转置后的矩阵。Sample Input 4 41 1 12 1 23 2 30 0 0Sample Output1 1 11 2 22 3 3#include<stdio.h>...原创 2018-04-13 16:53:26 · 3543 阅读 · 0 评论 -
数据结构30——稀疏矩阵加法,实现C=A+B
Description输入两个稀疏矩阵,输出它们相加的结果。Input第一行输入四个正整数,分别是两个矩阵的行m、列n、第一个矩阵的非零元素的个数t1和第二个矩阵的非零元素的个数t2。接下来的t1+t2行是三元组,分别是第一个矩阵的数据和第二个矩阵的数据。三元组的第一个元素表示行号,第二个元素表示列号,第三个元素是该项的值。Output输出相加后的矩阵三元组。Sample Input 3 4 3 ...原创 2018-04-13 22:29:17 · 5864 阅读 · 12 评论 -
数据结构31——稀疏矩阵十字链表实现A+B
实验2.3:稀疏矩阵加法,用十字链表实现C=A+BTime Limit: 3000ms, Memory Limit: 10000KB , Accepted: 0, Total Submissions: 0Description输入两个稀疏矩阵,输出它们相加的结果。Input第一行输入四个正整数,分别是两个矩阵的行m、列n、第一个矩阵的非零元素的个数t1和第二个矩阵的非零元素的个数t2。接下来...原创 2018-04-21 03:04:29 · 1187 阅读 · 0 评论 -
数据结构实验35——用迪杰斯特拉算法求赋权图中的最短路径
Description用迪杰斯特拉算法求一点到其余所有结点的最短路径。Input先输入一个小于100的正整数n,然后输入图的邻接矩阵(10000表示无穷大,即两点之间没有边),最后输入两个0到n-1的整数表示两个点。Output先用迪杰斯特拉算法求给定的第一个点到其余所有结点的最短路径。然后再输出给定的两个点之间的最短路径(按顺序输出最短路径上的每一个点,每个数据占一行)。Sample Input...原创 2018-05-25 15:02:51 · 2272 阅读 · 1 评论 -
数据结构实验36——用弗洛伊德算法求赋权图的两点间的最短路径的长度
Description用弗洛伊德算法求任意两点间的最短路径的长度Input先输入一个小于100的正整数n,然后输入图的邻接矩阵(10000表示无穷大,即两点之间没有边),之后再输入一个小于100的正整数m,最后的m行每行输入两个不同的0到n-1之间的整数表示两个点。Output用弗洛伊德算法求任意两点间的最短路径的长度,并输出这些两个点之间的最短路径的长度。Sample Input 40 2 1...原创 2018-05-25 15:44:24 · 1306 阅读 · 1 评论 -
数据结构25——二叉排序树的插入和删除(严9.35、9.36和9.37)【*,&不懂】
Description假设二叉排序树以后继线索链表作存储结构,编写程序,满足以下要求:输出该二叉排序树中所有大于a小于b的关键字;在二叉排序树中插入一个关键字;在二叉排序树中删除一个关键字。Input第一行按先序输入二叉排序树各结点(结点值大于0),其中-1表示取消建立子树结点;第二行输入要求1中a、b,用空格隔开;第三行输入要求2中要插入的关键字;第四行输入要求3中要删除的关键字。Output按...原创 2018-06-20 17:42:55 · 3743 阅读 · 0 评论