
陈越、何钦铭数据结构2018秋
RelaxRandi
dream it possible.
展开
-
03-树1 树的同构 (25 分)
这道题不难,画图就出来了#include<cstdio>#define null -1const int maxn=15;typedef int Tree;typedef char ElementType;struct TNode{ Tree left, right; ElementType data; int flag;}T1[maxn], T2[...原创 2018-10-04 18:29:29 · 1063 阅读 · 0 评论 -
08-图7 公路村村通 (30 分)
修路成本最低(贪心), 用Prim算法(最小生成树)比较Dijkstra算法和Prim算法#include<cstdio>#define INFINITY 65535using namespace std;const int maxn=1001;int dist[maxn], C[maxn][maxn], parent[maxn];int N, M, cnt...原创 2018-11-25 16:44:44 · 979 阅读 · 0 评论 -
中国大学MOOC-陈越、何钦铭-数据结构-2018秋期中考试
判断题1-1 在具有N个结点的单链表中,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)。 (3分) T1-2 无向连通图至少有一个顶点的度为1。 (3分) F1-3 算法分析的两个主要方面是时间复杂度和空间复杂度的分析。 (2分) T1-4 某二叉树的后序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无右孩子。(3分) T1-5 将1、2、3、4、5、6顺序插...原创 2018-11-20 11:47:12 · 7098 阅读 · 4 评论 -
07-图5 Saving James Bond - Hard Version (30 分)
无权单源图BFS【以下转自xijujie的代码】思路很清晰#include<iostream>#include<cmath>#include<queue>#include<vector>#include<algorithm>using namespace std;const double D=15.0;...转载 2018-11-24 11:06:24 · 477 阅读 · 0 评论 -
07-图4 哈利·波特的考试 (25 分)
多源有权图——Floyd算法 #include<cstdio>#include<queue>#include<stdlib.h>const int maxn=110;const int INFINITY=65535; struct AEdge{ int v1, v2; int weight;};typedef struct AEdge...原创 2018-11-23 22:14:22 · 480 阅读 · 0 评论 -
06-图3 六度空间 (30 分)
这道题,首先要确认的是用 DFS还是BFS,考虑到你要找的人,可能是你朋友的朋友的朋友。。每个人都有自己的交际圈,所以把每个人(结点)的交际圈看成一层,那么只要不超过六层的结点就是符合要求的,因此应用BFS。下图是根据题目要求对BFS进行改造:【以上源自中国mooc大学浙大数据结构姥姥的课件*_* 有些截图我没说(因为懒,但是大家都懂吧。。】#include<cs...原创 2018-11-22 10:14:24 · 1323 阅读 · 0 评论 -
06-图2 Saving James Bond - Easy Version (25 分)
#include<cstdio>int const maxn=110;int N, D, answer=0;int visit[maxn];struct point{ int x, y;}arr[maxn]; //三种结点 原点、鳄鱼、岸边int Jump(int v, int i){ int flag; int a=arr[i].x-arr[v].x, b...原创 2018-11-21 11:39:28 · 199 阅读 · 0 评论 -
04-树6 Complete Binary Search Tree (30 分)
#include<cstdio>#include<stdlib.h>const int maxn=1001;int arr[maxn], brr[maxn];int pos=0, n;int cmp(const void *a, const void *b){ return(*(int *)a-*(int *)b);}void solve(int ro...原创 2018-10-26 20:03:46 · 528 阅读 · 1 评论 -
04-树5 Root of AVL Tree (25 分)
#include<cstdio>#include<stdlib.h>typedef struct TNode* Tree;struct TNode{ int data; Tree Left, Right;};int Height(Tree T){ if(T){ int HL=Height(T->Left); int HR=Heigh...原创 2018-10-07 16:16:29 · 1154 阅读 · 1 评论 -
04-树7 二叉搜索树的操作集 (30 分)
本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X );BinTree Delete( BinTree BST, ElementType X );Position Find( BinTree BST, ElementType X );Position FindMin( BinTree BST ...原创 2018-10-05 22:56:21 · 627 阅读 · 0 评论 -
01-复杂度2 Maximum Subsequence Sum(25 分)
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to be { Ni, Ni+1, ..., Nj } where 1≤i≤j≤K. The Maximum Subsequence is the continuous subsequen...原创 2018-09-11 18:26:28 · 860 阅读 · 0 评论 -
02-线性结构2 一元多项式的乘法与加法运算 (20 分)
设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2...原创 2018-09-27 18:48:59 · 171 阅读 · 0 评论 -
03-树3 Tree Traversals Again (25 分)
【mooc上姥姥提供的代码】#include<cstdio>#include<stack>#include<string>#include<iostream>using namespace std;const int maxn=100;int pre[maxn], in[maxn], post[maxn];void s...原创 2018-10-04 23:57:25 · 1938 阅读 · 1 评论 -
二叉树中序遍历、后序遍历和层序遍历非递归实现
一、中序遍历访问顺序:左子树 -> 结点 -> 右子树难点在于访问左子树后应该怎么回到结点本身或者其右子树呢?这里利用了堆栈来临时存储,需要利用上一个结点时可以pop出来(有种撤回键的感觉2333)。void PreOrderTravel(BinTree BT){ BinTree T = BT; stack<BinTree> st; while(T ||...原创 2018-10-04 17:04:13 · 683 阅读 · 0 评论 -
03-树2 List Leaves (25 分)
大致思路:先找到根结点root(没有任何结点指向它的结点),并且记录叶子的个数,然后运用层序遍历(根据题目要求选的),将叶结点的坐标输出,注意输出格式。#include<cstdio>#include<queue>using namespace std;const int maxn=20;struct TNode{ int left, right;}T...原创 2018-10-04 22:13:21 · 646 阅读 · 0 评论 -
07-图6 旅游规划 (25 分)
题目概括:给两个城市点,求这两个点的最短路径,如果有若干条最短路径,则选择最便宜的那条。。显然单源有权图用Dijkstra算法,只不过有多了一重选择条件#include<cstdio>#define INFINITY 65535const int maxn=510;int dist[maxn], cost[maxn], E[maxn][maxn], C[maxn]...原创 2018-11-25 14:36:41 · 496 阅读 · 0 评论