- 博客(8)
- 收藏
- 关注
原创 堆中的路径
将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。输出格式:对输入中给出的每个下标i,在一行中输出从H[i]到根结点的路径上的数据。数
2017-03-30 19:26:50 382
转载 二叉树的三种遍历方法(转载)
#include<iostream> #include<stack> //STL #include<queue> using namespace std; class Tree { public: Tree *Left; Tree *Right; char data; Tree(); //成员函数 void
2017-03-24 19:25:22 346
原创 03-树2 List Leaves
Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. Input Specification:Each input file contains one test case. For each case, the first line gives a pos
2017-03-21 20:21:48 271
原创 03-树1 树的同构
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 现给定两棵树,请你判断它们是否是同构的。 输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数NN (\le 10≤10),即该树的结点数(此时假
2017-03-21 19:41:23 299
原创 用堆栈实现后序遍历的非递归程序
借助堆栈可以实现前序遍历、中序遍历的非递归程序,而且两者的程序结构几乎一样。 那么,是否也可以借助堆栈实现后序遍历的非递归程序?是不是挪动一下printf语句就可以了? (通过给节点增加访问次数的属性来实现,伪代码如下)void PostOrderTraversal(Bintree BT) { //给节点增加访问次数的属性Visit,初始化为0 Bintree T BT; St
2017-03-20 20:21:15 2864
原创 黄金分割查找
在二分查找中,我们是取mid等于left和right的中间值,即用等分的方法进行查找。 那为什么一定要等分呐?能不能进行“黄金分割”?也就是mid=left+0.618(right-left),当然mid要取整数。如果这样查找,时间复杂性是多少?也许你还可以编程做个试验,比较一下二分法和“黄金分割”法的执行效率。 (本例用C语言中的CLOCK来测定程序时间)#include <stdio.h>
2017-03-18 11:07:08 2657
原创 多项式乘法与加法运算(链表实现)
#include<iostream>using namespace std;typedef struct PolyNode *Polynomial;struct PolyNode{ int coef; int expon; Polynomial link;};void Attach(int c, int e, Polynomial *pRear){ Poly
2017-03-09 20:29:42 702
原创 素数对猜想
输入格式:输入在一行给出正整数N。输出格式:在一行中输出不超过N的满足猜想的素数对的个数。 输入样例: 20输出样例: 4#include "stdafx.h"#include <iostream>#include <iomanip>using namespace std;bool is_prime(int n);int main(){ int N; cin
2017-03-07 18:07:30 352
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人