数据结构
江潭落月复西斜
功不唐捐,玉汝于成。
展开
-
实验九排序算法实验比较
基于教材内容,任选两种排序算法,实现并比较性能。快排和归并。#include<iostream>#include<fstream>#include<windows.h>using namespace std;LARGE_INTEGER frequency;int A[1000001],temp[1000001];int count=0;void Init(ifstream &infile){ int a; while(!infile.eo原创 2021-08-05 16:53:39 · 150 阅读 · 0 评论 -
实验七图的应用二(行车路线)
小明和小芳出去乡村玩,小明负责开车,小芳来导航。小芳将可能的道路分为大道和小道。大道比较好走,每走1公里小明会增加1的疲劳度。小道不好走,如果走小道,小明的疲劳值会快速增加,走s公里小明会增加s2的疲劳度。所有的小道不相交。例如:有5个路口,1号路口到2号路口为小道,2号路口到3号路口为大道,3号路口到4号路口为大道,4号路口到5号路口为小道,相邻路口之间的距离都是2公里。如果小明从1号路口到5号路口,则总疲劳值为22+2+2+22=4+2+2+4=12。现在小芳拿到了地图,请帮助她规划一个开车的路线原创 2021-08-04 20:57:59 · 158 阅读 · 0 评论 -
实验六图的应用(通信网络)
应用图的ADT的物理实现来解决图的应用问题。某国的军队由N个部门组成,为了提高安全性,部门之间建立了M条通路,每条通路只能单向传递信息,即一条从部门a到部门b的通路只能由a向b传递信息。信息可以通过中转的方式进行传递,即如果a能将信息传递到b,b又能将信息传递到c,则a能将信息传递到c。一条信息可能通过多次中转最终到达目的地。由于保密工作做得很好,并不是所有部门之间都互相知道彼此的存在。只有当两个部门之间可以直接或间接传递信息时,他们才彼此知道对方的存在。部门之间不会把自己知道哪些部门告诉其他部门。原创 2021-08-04 20:19:12 · 152 阅读 · 0 评论 -
实验五图的实现邻接矩阵
1、基于邻接矩阵来实现图 ADT2、需要实现图的各个基本操作3、输出有向图的邻接矩阵并找出有向图中出度最大的点#include<iostream>using namespace std;#ifndef GRAPH_H#define GRAPH_H class Graph { private: void operator = (const Graph&) {} Graph(const Graph&) {} public: Gr原创 2021-08-04 19:08:47 · 273 阅读 · 0 评论 -
实验四二叉树的应用
二叉搜索树(BST)定义为具有以下属性的二叉树:1.任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值2.任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值3.任意节点的左、右子树也分别为二叉查找树完全二叉树(CBT)的深度为k,除第k层外,其他各层(1~(k-1)层)的节点数都达到最大值,且第k层所有的节点都连续集中在最左边。现在,给定一个键值互不相同的非负整数序列,构造一颗树既是CBT,也是BST。请你输出这个BST的层次遍历序列。【输入形式】每个输入文件的原创 2021-08-04 12:35:10 · 220 阅读 · 0 评论 -
实验三二叉树的物理实现
#include<iostream>#include<queue>using namespace std;template<typename E>class BinNode{private: BinNode*lc; BinNode*rc; E elem;public: BinNode() { lc = NULL; rc = NULL; } BinNode(E tmp,原创 2021-08-04 11:26:29 · 86 阅读 · 0 评论 -
实验二最小差值
对于给定的 n 个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。#ifndef LIST_H#define LIST_H#include<iostream>using namespace std;template <typename E> class List{//List ADT private: void operator=(const List&){} List(const List&){} public:原创 2021-08-04 10:29:13 · 165 阅读 · 0 评论 -
实验二游戏
有 n 个小朋友围成一圈玩游戏,小朋友从 1 至 n 编号,2 号小朋友坐在 1 号小朋友的顺时针方向,3 号小朋友坐在 2 号小朋友的顺时针方向,……,1 号小朋友坐在 n 号小朋友的顺时针方向。游戏开始,从 1 号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加 1。若一个小朋友报的数为 k 的倍数或其末位数(即数的个位)为 k,则该小朋友被淘汰出局,不再参加以后的报数。当游戏中只剩下一个小朋友时,该小朋友获胜。输出获胜的小朋友编号。#include <iostrea原创 2021-08-04 10:20:49 · 353 阅读 · 0 评论 -
实验一线性表的物理实现
链表#ifndef LIST_H#define LIST_H#include<iostream>using namespace std;template <typename E> class List{//List ADT private: void operator=(const List&){} List(const List&){} public: List(){} virtual ~List(){} virtual vo原创 2021-08-04 10:16:40 · 65 阅读 · 0 评论 -
Prim算法和Dijkstra算法的区别
↑求的是最小生成树,每次更新的都是【还没有加入树的节点】中与【已加入树的所有节点】距离最近的【一个】,如图V0、V3已加入树,剩余节点中和它俩距离最近的是V2、V5,为4↑求的是单源最短路径,每次将【还没有确定最短路径的顶点和源点的现有距离】与【途经已确定的顶点后和源点的距离】进行比较,更新【所有未确定顶点的距离】,如图当只有V0确定的时候,V1的距离为10,当V0、V4确定的时候,V1的距离为5+3=8...原创 2021-08-03 23:29:39 · 168 阅读 · 0 评论