数据结构算法
文章平均质量分 59
Fatestay_DC
这个作者很懒,什么都没留下…
展开
-
图的深度优先搜索
Description给出一个图的邻接矩阵,对图进行深度优先搜索,图的结点编号从0到n-1Input第一行输入t,表示有t个测试实例第二行输入n,表示第1个图有n个结点第三行起,每行输入邻接矩阵的一行,以此类推输入n行第i个结点与其他结点如果相连则为1,无连接则为0,数据之间用空格隔开以此类推输入下一个示例Ou转载 2014-12-02 14:25:54 · 547 阅读 · 0 评论 -
数据结构之简单的查找算法
(一)顺序查找实验1、问题描述给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始,要求使用带哨兵的顺序查找算法 2、顺序查找算法⑴、在表的第0位置,赋给定值Key⑵、从表中最后一个记录开始⑶、逐个进行记录的关键字和给定值Key的比较⑷、若某个记录比较相等,则查找成功⑸、若直到第1个记录都比较不等,则查找不成功 3、输入第一行输入n,原创 2014-11-30 21:35:42 · 660 阅读 · 0 评论 -
二叉树遍历
给定一颗二叉树的逻辑结构如下图,(先序遍历的结果,空树用字符‘0’表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构,并输出该二叉树的先序遍历、中序遍历和后序遍历结果本题目的代码框架参考如下三种遍历的代码框架Input第一行输入一个整数t,表示有t个二叉树转载 2014-12-02 14:29:50 · 862 阅读 · 0 评论 -
顺序建树后序遍历
Description1、问题描述给定一棵按顺序存储方式存储的二叉树,请后根遍历这棵二叉树。2、二叉树创建说明⑴、按顺序存储方式存储二叉树的每个结点,其中0表示空结点⑵、结点从1开始编号,按完全二叉树方式排列,即如果编号为i的结点有左孩子,则左孩子的编号为2i;如果编号为i的结点有右孩子,则右孩子的编号为2i+1⑶、例如:A 0 B 0 0 C D,其中,A为根(编转载 2014-12-02 14:38:31 · 578 阅读 · 0 评论 -
顺序性数据结构小总结
第一题:Problem A: 岗位实践2——顺序表的插入顺序表是采用数组存储数据的一种线性数据结构。实现顺序表的插入操作,即给出指定位置和数据,把该位置和后面的数据往后移动1位,然后再插入数据。假定顺序表的位置从1开始计算。#include using namespace std; #define L 50 class list{ private:转载 2014-12-02 14:43:37 · 716 阅读 · 0 评论 -
有向图求拓扑
Description1、问题描述给定一个有向图,求出其拓扑排序序列。2、算法⑴、在有向图中选一个没有前驱的顶点且输出之(如果有多个顶点皆没有前驱,序号小的顶点先输出,如果b,d皆无前驱时,先输出b)⑵、从图中删除该顶点和所有以它为尾的弧重复⑴⑵两步,直到所有顶点输出为止Input第一行:样本顶点个数,假设为n。第二行,n个顶点(用空格隔转载 2014-12-02 14:40:56 · 852 阅读 · 0 评论 -
拓扑排序
1、问题描述已知有向图,顶点从0开始编号,求它的求拓扑有序序列。 2、拓扑排序算法:给出有向图邻接矩阵(1)逐列扫描矩阵,找出入度为0且编号最小的顶点v(2)输出v,并标识v已访问(3)把矩阵第v行全清0重复上述步骤,直到所有顶点输出为止 3、输入第一行输入一个整数t,表示有t个有向图第二行输入n,表示图有n个顶点第三行起,输入n行整数,表示图对应的邻接矩阵原创 2014-12-01 17:02:20 · 992 阅读 · 0 评论 -
图的最短路径算法
1、问题描述给定一个顶点(始点),求该顶点(始点)到(连通)图中其它顶点的最短路径。 2、算法⑴、初始化: S ← {v1 }; // 始点送SD[i] ← arc[1][i], i = 2, 3, …, n; // 从v1到vi的距离P[i] = {1,i}转载 2014-12-02 14:22:01 · 636 阅读 · 0 评论 -
二叉树叶子节点数
Description计算一颗二叉树包含的叶子结点数量。提示:叶子是指它的左右孩子为空。建树方法采用“先序遍历+空树用0表示”的方法,即给定一颗二叉树的先序遍历的结果为AB0C00D00,其中空节点用字符‘0’表示。则该树的逻辑结构如下图。Input第一行输入一个整数t,表示有t个测试数据第二行起输入二转载 2014-12-02 14:31:01 · 951 阅读 · 0 评论 -
先根建树中序遍历
Description1、问题描述给定一棵按“先根”遍历存储表示的二叉树,请中根遍历这棵二叉树。2、二叉树创建说明⑴、按“先根”遍历存储表示的二叉树中,如果在遍历过程中,发现子树为空,输出0⑵、例如:A有B子树,没有右子树,其“先根”遍历为A B 0 0 0⑶、例如:A为根,B为A的右孩子;C为B的左孩子,D为B的右孩子,其“先根”遍历为A 0 B C 0 0 D转载 2014-12-02 14:39:44 · 606 阅读 · 0 评论 -
顺序表,链表,堆栈,串
#include using namespace std; #define ok 0 #define error -1 class SeqList { private: int *list; int maxsize; int size; public:转载 2014-12-02 14:48:58 · 524 阅读 · 0 评论 -
Huffman
Description1、问题描述给定n个字符及其对应的权值,构造Huffman树,并进行huffman编码和译(解)码。构造Huffman树时,要求左子树根的权值小于右子树根的权值。进行Huffman编码时,假定Huffman树的左分支上编码为‘0’,右分支上编码为‘1’。2、算法 构造Huffman树算法:⑴、根据给定的n个权值(w1, w2, …, wn)转载 2014-12-02 14:28:50 · 615 阅读 · 0 评论 -
KMP
#include using namespace std; #include const int Length = 20; void get_next(stringSubString, int * next){ int i = 1,j = 0; next[1] =0; while(i if(0== j ||转载 2014-12-02 14:47:09 · 391 阅读 · 0 评论 -
数据结构简单的六种排序算法
#include using namespace std;void Print(int a[],int n){int i;for(i = 0; icoutcoutcout}//改程序测试这个算法时候注意数组输入输出下标需要向前+1//堆排序 取有孩子的节点依次遍历改结点与孩子结点的大小,构建大顶堆//根节点(最大值)与最后一个结点交换原创 2014-12-30 16:05:46 · 547 阅读 · 0 评论