数据结构
麓山君陌
在校科研生
展开
-
数据结构——顺序队列长代码实现
此为本人在学习数据结构时将所学所想进行代码实现后所写成的代码,功能均能实现,仅供参考学习#include <iostream>#include <iomanip>#include <assert.h>using namespace std;template <typename E>class queue{private: void op...原创 2019-11-22 08:15:27 · 449 阅读 · 0 评论 -
数据结构——链式队列长代码实现
此为本人在学习数据结构时将所学所想进行代码实现后所写成的代码,功能均能实现,仅供参考学习#include <iostream>#include <iomanip>#include <assert.h>using namespace std;template <typename E>class link{public: E element...原创 2019-11-22 08:14:02 · 636 阅读 · 0 评论 -
数据结构——顺序栈长代码实现
此为本人在学习数据结构时将所学所想进行代码实现后所写成的代码,功能均能实现,仅供参考学习#include <iostream>#include <iomanip>#include <assert.h>using namespace std;template <typename E> class stack{private: void o...原创 2019-11-22 08:13:17 · 617 阅读 · 0 评论 -
数据结构——链式栈长代码实现
此为本人在学习数据结构时将所学所想进行代码实现后所写成的代码,功能均能实现,仅供参考学习#include <iostream>#include <assert.h>using namespace std;template <typename E>class link{public: E element;//结点值 link *next;//节点指针...原创 2019-11-22 08:12:34 · 438 阅读 · 0 评论 -
数据结构——数组长代码实现
此为本人在学习数据结构时将所学所想进行代码实现后所写成的代码,功能均能实现,仅供参考学习#include <iostream>#include <iomanip>#include <assert.h>using namespace std;template <typename E>class list{private: void ope...原创 2019-11-22 08:11:23 · 218 阅读 · 0 评论 -
数据结构——链表长代码实现
此为本人在学习数据结构时将所学所想进行代码实现后所写成的代码,功能均能实现,仅供参考学习#include <iostream>#include <iomanip>#include <assert.h>//为了调用假设函数 using namespace std;template <typename E> class link{//链表中的每...原创 2019-11-21 09:14:01 · 400 阅读 · 0 评论 -
数据结构——冒泡排序vs快速排序
冒泡排序和快速排序都是我们比较常用的排序方法(可能快速排序不是),这里进行了两种算法的效率比较,数量级为10,100,1K,10K,100K,1M。代码如下:#include <iostream>#include <fstream>#include <ctime>//clock_t#include <windows.h>//dword,la...原创 2019-11-21 09:10:25 · 668 阅读 · 1 评论 -
数据结构——自组织线性表
一、问题0.问题描述从一个文件中读取一组汉字,在另一个文件中读取要查询的汉字,再新建一个文件用来存储查询结果。1.问题分析本题要求采用文件流输入输出,通过文件来读取数据,并通过文件来存储结果,当找到某个汉字时,自返回比较的次数,并将数据存储文件中的数据的顺序进行更改;若没找到,则仅返回比较的次数。2.输入数据输入文件为仅有单个汉字和空格组成的一个txt文件,同时还有一个查询文件,同样为...原创 2019-11-21 09:04:48 · 926 阅读 · 0 评论 -
数据结构——CCF真题:疲劳度问题
2017.12.3CCF真题第四题一、问题:0.问题描述小明和小芳出去乡村玩,小明负责开车,小芳来导航。 小芳将可能的道路分为大道和小道。大道比较好走,每走1公里小明会增加1的疲劳度。小道不好走,如果连续走小道,小明的疲劳值会快速增加,连续走s公里小明会增加s2的疲劳度。 例如:有5个路口,1号路口到2号路口为小道,2号路口到3号路口为小道,3号路口到4号路口为大道,4号路口到5号路...原创 2019-11-21 08:58:52 · 1050 阅读 · 0 评论 -
数据结构——图:邻接矩阵
graphm.h为图ADT的定义和声明graphm.cpp为图ADT的实现main.cpp为demo程序按照提示进行输入即可实例输入:5#节点个数A B C D E# 输入时每个顶点信息之间要以空格分割U# 无向图7# 边数A B 10B D 5A D 20A C 3C B 2C E 15D E 11如下图:main文件#include <iostrea...原创 2019-11-21 08:51:06 · 615 阅读 · 0 评论 -
数据结构——图:邻接表
graphl.h为图ADT的定义和声明graphl.cpp为图ADT的实现main.cpp为demo程序按照提示进行输入即可实例输入:5#节点个数A B C D E# 输入时每个顶点信息之间要以空格分割U# 无向图7# 边数A B 10B D 5A D 20A C 3C B 2C E 15D E 11如下图:main文件#include <iostrea...原创 2019-11-21 08:47:13 · 529 阅读 · 0 评论 -
数据结构——线性表:双链表元素交换
双链表元素交换问题:根据线性表ADT的定义,线性表的交换操作是将当前位置指示的元素和其下一个元素交换位置当前 之后current=i listsize=ncurrent=i+1 listsize=n算法交换位置时,由于是双向链表,所以需要考虑ai-1,ai,ai+1,ai+2四个单元,由于i的可能取值为1~n-1,故可能情况有三种:i=1,i=n-1,i取中间值。...原创 2019-11-20 19:44:16 · 1494 阅读 · 0 评论 -
数据结构——线性表:约瑟夫问题
约瑟夫问题:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序,按照出列的顺序打印出各人的编号。问题分析数据对象:处理一组带密码和编号...原创 2019-11-20 19:40:29 · 2412 阅读 · 1 评论 -
数据结构——静态查找表
此为本人在学习数据结构时所写的,各个功能能够实现,有demo,node.h,tree.h,tree.cpp四个文件,使用说明如下:按照要求,先进行建树操作然后按照输出的界面选择查找操作即可输入的数据6;5 4 2 1 3 6。表示建立了一棵二叉链表树:54 621 3在查找时输入:1,则进行查找,由于1存在于BST中,在查找过程中进行了四次比较,故输出:1 4dem...原创 2019-11-20 19:28:35 · 396 阅读 · 0 评论 -
数据结构——左子右兄二叉树
此为本人在学习数据结构时所写的,各个功能能够实现,有main,danyuan.h,danyuan.cpp四个文件,使用说明如下:在输入的时候要将所有的数据单元都输入,哪怕是空节点,如对于树:AB CO D E FG # # H则输入ABCODEFG##H注意输入的元素之间无空格理论将会输出前序...原创 2019-11-20 19:22:00 · 1013 阅读 · 0 评论 -
数据结构——二叉链表
此为本人在学习数据结构时所写的,各个功能能够实现,有demo,tree.h,node.h,tree.cpp四个文件,使用说明如下:按照要求输入,本程序的输入顺序是前序遍历的顺序,要求空节点用#代替,节点之间无空格。如:ABD##E##CFH##I##GJ##KL##M##前序遍历结果为ABD##E##CFH##I##GJ##KL##M##中序遍历结果为#D#B#E#A#H#F#I#C#J#...原创 2019-11-20 19:18:52 · 1241 阅读 · 0 评论 -
数据结构——一元n次多项式加法
此为本人在学习数据结构时所写的,各个功能能够实现,有main.cpp,link.h,list.h,list.cpp四个文件使用说明:请按照输入提示输入多项式的次数和各项系数,;输入请按照提示要求!请不要输入数字之外的其他文字例:33 22 31 10 0表示最高级数为3的多项式:2x3+3x2+1*x1+0x055 10 0表示最高级数为5的多项式:1x^5main...原创 2019-11-20 19:05:01 · 1196 阅读 · 0 评论 -
数据结构——数组
此为本人在学习数据结构时所写的,各个功能能够实现,有main,list.h,alist.h三个文件main.cpp#include "list.h"#include "alist.h"#include<iomanip>#include<iostream>using namespace std;void print(AList<int>& ...原创 2019-11-20 19:00:05 · 149 阅读 · 0 评论 -
数据结构——链表
此为本人在学习数据结构时所写的,各个功能能够实现,有多个文件:main文件#include "link.h"#include "list.h"#include "llist.h"#include<iomanip>#include<iostream>using namespace std;void print(LList<int> &A...原创 2019-11-20 18:57:14 · 276 阅读 · 0 评论 -
途中指定两点的所有简单路径
算法思想:基于DFS第一次访问时,将该点标记为1,第二次访问的时候,将该点重新标记为0。当到达终点时,将所有标记为1的点输出。当DFS执行完毕,则找完所有路径。以下图为例:要找A到E的简单路径访问A,标记为1访问C,标记为1访问B,标记为1访问F,标记为1输出A-C-B-F返回B,F标记为0返回C,B标记为0访问F,标记为1输出A-C-F返回C,F标记为0访问D,标记为...原创 2019-10-29 15:53:55 · 569 阅读 · 0 评论 -
求一条简单路径
算法思想:基于DFS当访问某个顶点V时,递归的访问它的所有未被访问的相邻顶点。从图中给定的顶点V开始,访问此顶点,然后以此为出发点,从他未被访问的邻接点中选取一点重复,直到找到目标点。将访问的节点存储,若返回则从存储中剔除,找到目标点后将存储中的结点输出。以下图为例:要找A到E的简单路径访问A,从A找到C,从C找到B,返回C从C找到F从F找到E结束,打印路径A-C-F-E伪...原创 2019-10-29 15:52:32 · 2079 阅读 · 0 评论 -
求无权图中指定两点的最短路径
1、算法思想:从给定的第一个点出发,首先检查它的所有相邻顶点,再依次访问它相邻顶点的,在访问相邻顶点时,检查其所有相邻顶点,重复这个过程直到找到给定的第二个点。在调用顶点的过程中,依次保存各顶点,并对访问过的顶点进行标记,标记过的顶点不再进行重复访问,直到找到终点。若在一条路径中未找到终点,则递归返回上一个点后要更新路径,重复这个过程直到找到终点。举例如下:要找到 A 到 E 的最短路径访...原创 2019-10-29 11:11:03 · 1259 阅读 · 1 评论 -
数据结构——期末复习系统c++代码
此为本人在大二下学期准备数据结构期末考试时与闲暇时所写,聊以慰藉,现附代码如下:#include <iostream>#include <windows.h>using namespace std;int main(){ cout<<"************************"<<endl; cout<<"欢迎来到数...原创 2019-10-25 13:01:50 · 919 阅读 · 2 评论 -
数据结构知识点总结
代价:算法消耗的资源量有效率的:算法能在要求的资源限制内解决问题比较方法:实证分析、仿真、渐进算法分析规模:输入量的数目基本操作:简单算术、简单布尔运算、赋值语句、返回语句、I/O语句增长率:随输入规模增加,算法代价的增长速率,即复杂度情况:最佳、最差、平均情况上限:对T(n),若存在c和n,使当n>n0时,有T(n)<=cf(n),则T(n)在O(f(n))中结构性开...原创 2019-10-25 13:00:03 · 831 阅读 · 0 评论