数据结构
yanyanwenmeng
这个作者很懒,什么都没留下…
展开
-
二叉树遍历(已知中序、先序求后序)
二叉树的遍历Time Limit: 1000msMemory Limit: 32768KBThis problem will be judged on HRBUST. Original ID: 204064-bit integer IO format: %lld Java class name: MainPrev Submit Status原创 2017-09-04 09:28:08 · 613 阅读 · 0 评论 -
堆
堆的定义堆结构是一种数组对象,它可以被视为一棵完全二叉树。树中每个结点与数原创 2017-10-01 22:56:02 · 241 阅读 · 0 评论 -
合并果子
合并果子(fruit)时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共原创 2017-10-02 00:10:34 · 319 阅读 · 0 评论 -
扩展二叉树
【例3-5】扩展二叉树时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】由于先序、中序和后序序列中的任一个都不能唯一确定一棵二叉树,所以对二叉树做如下处理,将二叉树的空结点用·补齐,如图所示。我们把这样处理后的二叉树称为原二叉树的扩展二叉树,扩展二叉树的先序和后序序列能唯一确定其二叉树。现给出扩展二叉树的先序序列,要求输出其中序和后序原创 2017-09-30 22:53:40 · 2362 阅读 · 0 评论 -
二叉树的建立,删除,查找,插入,输出(数据结构)
1. 建立二叉树void pre_crt(tree &bt)//按先序顺序输入二叉树中节点的值,生成{ char ch; ch=getchar();//二叉树的单链表存储结构,bt为指向根节点的指针,,'$'表示空树 if(ch!='$') { bt=new node;//建根节点 bt->data=ch; pre_crt(bt->lchild); p原创 2017-08-30 18:32:25 · 1615 阅读 · 0 评论 -
遍历二叉树(数据结构,递归)
在二叉树的应用中,常常要求在树中查找具有某种特征的结点,或者对全部结点逐一进行某种处理。这就是二叉树的遍历问题。所谓二叉树的遍历是指按一定的规律和次序访问树中的各个结点,而且每个结点仅被访问一次。“访问”的含义很广,可以是对结点作各种处理,如输出结点的信息等。遍历一般按照从左到右的顺序,共有3种遍历方法,先(根)序遍历,中(根)序遍历,后(根)序遍历。先序:根、左、右;中序:左、根、右;原创 2017-08-30 16:57:59 · 369 阅读 · 0 评论 -
二叉树的存储结构(数据结构)
1. 链式存储结构即单链表结构或双链表结构(同树)。数据结构修改如下:typedef struct node;typedef node *tree;struct node{ char data; tree lchild,rchild;};tree bt;typedef struct node;typedef node *tree;struct node{原创 2017-08-30 13:37:44 · 1143 阅读 · 0 评论 -
树的存储结构(数据结构)
1. 数组,称为“父亲表示法”const int m=10;//数的节点数 struct node{ int data,parent;//数据阈,指针阈 };node tree[m]; int tree[100];tree[1]=2;//1的父亲节点为2优缺点:利用了树中除根结点外每个结点都有唯一的父结点这个性质。很容易找到树根,但找孩子时需要遍历整个线性表。原创 2017-08-30 12:50:13 · 789 阅读 · 0 评论 -
医院设置 (数据结构 二叉树 floyd算法)
【例3-3】医院设置【问题描述】 设有一棵二叉树(如图3-8,其中圈中的数字表示结点中居民的人口,圈边上数字表示结点编号。现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻结点之间的距离为1。就本图而言,若医院建在1处,则距离和=4+12+2*20+2*40=136;若医院建在3处,则距离和=4*2+13+20+40=81……【输入格式】原创 2017-08-30 12:17:09 · 5051 阅读 · 0 评论 -
单词查找树(数据结构)
•【例3-2】单词查找树 【问题描述】 在进行文法分析的时候,通常需要检测一个单词是否在我们的单词列表里。为了提高查找和定位的速度,通常都画出与单词列表所对应的单词查找树,其特点如下: 1.根结点不包含字母,除根结点外每一个结点都仅包含一个大写英文字母; 2.从根结点到某一结点,路径上经过的字母依次连起来所构成的字母序列,称为该结点对应的单词。单词列表中的每个单词,都原创 2017-08-29 21:54:18 · 1890 阅读 · 0 评论 -
周末舞会(循环队列)
【例2-1】周末舞会时间限制: 1000 ms 内存限制: 65536 KB提交数: 31 通过数: 29 【题目描述】假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述原创 2017-09-14 00:09:24 · 5999 阅读 · 1 评论 -
约瑟夫环问题
约瑟夫环问题【问题描述】 有 M 个人,其编号分别为 1-M。这 M 个人按顺序排成一个圈。现在给定一个数 N,从第一个人开始依次报数,数到 N 的人出列,然后又从下一个人开始又从 1 开始依次报数,数到 N 的人又出列...如此循环,直到最后一个人出列为止。【输入格式】 输入只有一行,包括 2 个整数 M,N。之间用一个空格分开(0 【输出格式】 输出只有一行,包括 M 个整原创 2017-09-13 16:12:05 · 863 阅读 · 0 评论 -
数据结构 找树根和孩子(树)
给定一棵树,输出树的根root,孩子最多的结点max以及他的孩子原创 2017-08-23 22:46:46 · 5680 阅读 · 1 评论 -
二叉树遍历(已知中序和按层遍历求先序 递归)
二叉树遍历(flist)时间限制: 1000 ms 内存限制: 65536 KB提交数: 8 通过数: 6 【题目描述】树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,给定中序和其它一种遍历的序列就可以确定一棵二叉树的结构。假定一棵二叉树一个结点用一个字符描述,现在给出中序和按层遍历的字符串,求该树的先序遍历字符串。【输入】原创 2017-09-04 09:53:24 · 7500 阅读 · 0 评论 -
二叉树遍历(已知先序、中序求后序)
【例3-4】求后序遍历时间限制: 1000 ms 内存限制: 65536 KB提交数: 11 通过数: 9 【题目描述】输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。【输入】共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。树的结点一律用小写字母表示。【输出】一行,表示树的后序遍历序列。原创 2017-09-03 23:09:07 · 1073 阅读 · 0 评论 -
最短路径问题(floyd算法)
【例4-1】最短路径问题时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】平面上有n个点(n若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现在的任务是找出从一点到另一点之间的最短路径。【输入】共n+m+3行,其中:第一行为整数n。第2行到第n+1行(共n行) ,每行两个整数x原创 2017-10-05 04:58:10 · 763 阅读 · 0 评论