数据结构与算法
Data Structure and Algorithm
csuLuyao
不信书,信运气。
展开
-
Dijkstra算法原理详解和代码实现
Dijkstra算法是解决单源有权图最短路径的一个算法,本质是贪心算法。总的来说就是维护一个集合collect,保证在集合里的所有结点的最短路径长度都是正确的。v1为源点,v6为终点,求v1->v6的最短路径。其实求v1->v6的最短路径的同时所有点的最短路径都能求出来。先将v1加入集合collected,正确,集合中v1->v1的最短路径就是0。再从与v1相连的结点里选...原创 2020-04-12 19:31:49 · 452 阅读 · 1 评论 -
中国大学MOOC ZJU-数据结构-磨枪
01-复杂度1 最大子列和问题 (20分)给定K个整数组成的序列{ N1,N2…NK },“连续子列”被定义为{ Ni, Ni+1, …, Nj },其中 1。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给定整数序列的最大子...原创 2020-05-13 20:22:29 · 191 阅读 · 0 评论 -
中国大学MOOC ZJU-数据结构-线性列表
02-线性结构1 两个有序链表序列的合并 (15分)本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node PtrToNode;struct Node {ElementType Data; / 存储结点数据 /PtrTo...原创 2020-05-13 20:22:25 · 253 阅读 · 0 评论 -
中国大学MOOC ZJU-数据结构-栽树
03-树1 树的同构 (25分)给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1图2现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤...原创 2020-05-13 20:21:18 · 253 阅读 · 0 评论 -
链表常用函数实现
数据结构-线性结构-单向链表常规函数#include<stdio.h>#include<stdlib.h>#include<stdbool.h>#define Elemtype int//所有列表均含头节点,单向链表//节点定义struct node{ Elemtype val; struct node* next;};...原创 2020-05-13 20:21:31 · 306 阅读 · 0 评论 -
中国大学MOOC ZJU-数据结构-树(中)
04-树7 二叉搜索树的操作集 (30分)本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X );BinTree Delete( BinTree BST, ElementType X );Position Find( BinTree BST, ElementType X );Position Fi...原创 2020-05-13 20:19:57 · 307 阅读 · 0 评论 -
树的介绍,递归和非递归遍历和BST AVL树常用函数实现
树的介绍一、树的定义1.树(Tree)是n(n≥0)个结点的有限集T, 如果n = 0,称为空树;否则:①有且仅有一个称为树的根(root)的结点。②其余结点可分为m(m>0)个互不相交的有限集T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree)。对于非空树,树的子树是不相交的。二、树的术语1.结点(node)—表示树中的元素,包括数据项及若干指向...原创 2020-05-13 20:19:53 · 213 阅读 · 0 评论 -
中国大学MOOC ZJU-数据结构-图(上)
(其实这些都是DFS,BFS的应用,理解了问题都应该很好解决的。)06-图1 列出连通集 (25分)给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两...原创 2020-05-13 20:19:48 · 324 阅读 · 0 评论 -
中国大学MOOC ZJU-数据结构-树(下)
05-树7 堆中的路径 (25分)将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。输出格式:对输入中给出的每个下标i,在...原创 2020-05-13 20:19:30 · 302 阅读 · 0 评论