![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
w-here
不念过去,珍惜当下
展开
-
哈弗曼编码
Description写一个哈夫曼码的编/译码系统,要求能对要传输的报文进行编码和解码。构造哈夫曼树时,权值小的放左子树,权值大的放右子树,编码时右子树编码为1,左子树编码为0。Input输入表示字符集大小为n(n <= 100)的正整数,以及n个字符和n个权值(正整数,值越大表示该字符出现的概率越大);输入串长小于或等于100的目标报文。Output经过编码后的二进制码,占一行;以及对应解...原创 2018-05-15 20:05:33 · 333 阅读 · 0 评论 -
Dijstra求任意两点间最短路径并输出
Description用迪杰斯特拉算法求一点到其余所有结点的最短路径。Input先输入一个小于100的正整数n,然后输入图的邻接矩阵(10000表示无穷大,即两点之间没有边),最后输入两个0到n-1的整数表示两个点。Output先用迪杰斯特拉算法求给定的第一个点到其余所有结点的最短路径。然后再输出给定的两个点之间的最短路径(按顺序输出最短路径上的每一个点,每个数据占一行)。Sample Input...原创 2018-05-31 21:20:37 · 5747 阅读 · 3 评论 -
用弗洛伊德算法求赋权图的两点间的最短路径的长度。
Description用弗洛伊德算法求任意两点间的最短路径的长度Input先输入一个小于100的正整数n,然后输入图的邻接矩阵(10000表示无穷大,即两点之间没有边),之后再输入一个小于100的正整数m,最后的m行每行输入两个不同的0到n-1之间的整数表示两个点。Output用弗洛伊德算法求任意两点间的最短路径的长度,并输出这些两个点之间的最短路径的长度。 Sam...原创 2018-05-31 00:22:18 · 969 阅读 · 0 评论 -
Dijstra求赋权图中一个结点到所有结点的最短路径的长度
Description给一个赋权图(无向图),求0号结点到其余所有结点的最短路径的长度。Input先输入一个小于等于100的正整数n,然后输入赋权图的邻接矩阵(10000表示无穷大,并且任意一条简单路径的长度都小于10000)Output按结点编号的顺序输出0号结点所有结点的最短路径的长度。Sample Input 60 1 4 10000 10000 100001 0 2 7 5 10000...原创 2018-05-31 00:20:30 · 2033 阅读 · 0 评论 -
二叉排序树的判别
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-05-30 23:30:34 · 1022 阅读 · 0 评论 -
输出以二叉树表示的算术表达式
Description编写程序,输出以二叉树表示的算术表达式,若该表达式中含有括号,则在输出时应添上。Input按先序输入一行字符,其中#表示取消建立子树结点,即所有叶子节点均为#。Output输出该二叉树所表示的算术表达式(若表达式中含有括号,则在输出时应添上)。Sample Input *+a(###b#)##c##Sample Output(a+b)*c#include<stdio.h...原创 2018-05-15 20:12:31 · 2943 阅读 · 1 评论 -
逆波兰式
Description假设表达式由单字母变量和双目四则运算算符构成。试编写程序,将一个通常书写形式且书写正确的表达式转换为逆波兰式。Input输入由单字母变量和双目四则运算算符构成的表达式。Output输出其逆波兰式。Sample Input (a+b)*cSample Outputab+c*#include<stdio.h>#include<stdlib.h>typ...原创 2018-04-01 13:04:03 · 6023 阅读 · 3 评论 -
k阶斐波那契数列
File Name:T010.cppk阶斐波那契数列(严3.32)Time Limit: 3000ms, Memory Limit: 10000KB, Accepted: 252, Total Submissions: 1051Description试利用循环队列编写k阶斐波那契数列中前n+1项 (f(0),f(1),…,f(n))的程序,要求满足: f(n)<=max而f(n+1)>...原创 2018-04-01 13:18:27 · 2642 阅读 · 0 评论 -
稀疏矩阵转置
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-12 19:53:55 · 1108 阅读 · 0 评论 -
以十字链表为存储结构实现矩阵相加
Description以十字链表为存储结构,编写程序,将稀疏矩阵B加到稀疏矩阵A上。Input第一行输入四个正整数,分别为稀疏矩阵A和稀疏矩阵B的行数m、列数n、稀疏矩阵A的非零元素个数t1和稀疏矩阵B的非零元素个数t2。接下来的t1+t2行三元组表示,其中第一个元素表示非零元素所在的行值,第二个元素表示非零元素所在的列值,第三个元素表示非零元素的值。Output输出相加后的矩阵三元组。Sampl...原创 2018-04-12 19:56:44 · 944 阅读 · 0 评论 -
稀疏矩阵的乘法(数组)
Description计算两个稀疏矩阵的乘法Input首先输入第一个矩阵的行数和列数,再输入该矩阵的三元组形式,以0 0 0结束然后输入第二个矩阵的行数和列数,再输入该矩阵的三元组形式,以0 0 0结束Output输出相乘后的矩阵三元组。Sample Input 3 31 1 12 2 22 3 43 1 -40 0 03 31 3 -22 3 -53 1 83 2 -60 ...原创 2018-04-22 13:06:32 · 3652 阅读 · 0 评论 -
二叉树的创建,求深度以及中序输出
按先序输入二叉树各结点,其中#表示取消建立子树结点。#include<stdio.h>#include<malloc.h>typedef struct binarytree{ char val; struct binarytree *left; struct binarytree *right;}bt;void creatbt(bt **pbt){ ...原创 2018-04-24 00:09:22 · 260 阅读 · 0 评论 -
基本栈的操作
先输入一个数n,在输入n个数,倒序输出。#include<stdio.h>#include<stdlib.h>typedef struct node{ int m; struct node *next;}node;typedef struct stack{ node *front; node *tail;}stack;int n;stack ...原创 2018-06-15 19:06:38 · 339 阅读 · 0 评论