
数据结构
糖葫芦君
这个作者很懒,什么都没留下…
展开
-
顺序存储结构的插入与删除
#include #include using namespace std;#define MAXSIZE 20typedef int ElemType;typedef struct{ ElemType data[MAXSIZE]; int length;}Sqlist;void Initlist(Sqlist &L){ L.length=0;}vo原创 2016-03-08 11:12:16 · 743 阅读 · 0 评论 -
leetcode148归并排序 (递归与非递归c++实现)
归并排序:是一种非线性时间比较类排序,采用分治的策略,通过比较来决定元素间的相对次序.时间复杂度不受数据本身影响.c++递归实现:#include<cstdlib>using namespace std;void MergeSort(int* A, int* L, int lenOfL, int* R, int lenOfR){ int i=0, j=0...原创 2019-01-05 17:20:16 · 1601 阅读 · 2 评论 -
确定比赛名次(拓扑排序)
题目描述:有N个比赛队(1输入:输入有若干组,每组中的第一行为二个数N(1输出:给出一个符合要求的排名。输出时队伍号之间有空格,最后一名后面没有空格。其他说明:符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。样例输入:4 31 22 34 3原创 2016-05-27 12:58:04 · 389 阅读 · 0 评论 -
产生冠军 (拓扑排序)
题目描述: 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。球赛的规则如下:如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。如果A打败了B,B又打败了C,而且,C又打败了A,那么A、B、C三者都不可能成为冠军。根据这个规则,无需循环较量,或许就能确定冠军。你的任务就是面对一群比赛选手,在经过了若干场撕杀之后,确定是否已经实原创 2016-05-27 12:54:32 · 397 阅读 · 0 评论 -
I wanna go home(最短路)
题目描述: The country is facing a terrible civil war----cities in the country are divided into two parts supporting different leaders. As a merchant, Mr. M does not pay attention to politics but he原创 2016-04-10 15:21:46 · 445 阅读 · 0 评论 -
最短路问题 Floyd算法与Dijkstra算法(leetcode 743)
Floyd算法:算法原理: 最短路的实际应用:题目描述:在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?输入:输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000)...原创 2016-04-10 11:37:37 · 6143 阅读 · 1 评论 -
Jungle Roads(最小生成树+并查集)
关于并差集一篇非常好的博客:LeetCode解题报告(684,685,721)-并查集介绍及应用题目描述:题目大意在相通n个岛屿的所有桥都坏了,要重修,重修每一个桥所用的时间不同,求重修使每个岛屿都间接或直接与其他岛屿相同时所用的的最短时间(只有修完一个桥后才可修下一个桥)。简言之就是求最小生成树。对于数据,数据输入的第一行n代表岛屿的个数,当为0是结束程序,接着...原创 2016-04-08 13:19:26 · 459 阅读 · 0 评论 -
产生冠军
题目描述:有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。球赛的规则如下:如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。如果A打败了B,B又打败了C,而且,C又打败了A,那么A、B、C三者都不可能成为冠军。根据这个规则,无需循环较量,或许就能确定冠军。你的任务就是面对一群比赛选手,在经过了若干场撕杀之后,确定是否已经原创 2016-04-12 10:52:53 · 457 阅读 · 0 评论 -
Leagal or not(拓扑排序)
题目描述:ACM-DIY is a large QQ group where many excellent acmers get together. It is so harmonious that just like a big family. Every day,many "holy cows" like HH, hh, AC, ZT, lcc, BF, Qinz and so on原创 2016-04-12 10:11:34 · 343 阅读 · 0 评论 -
循环队列和链式队列的基本操作1
1,循环队列队列:FIFO队列在出出队列时需要移动大量元素,时间复杂度为O(n),而且还可能发生假溢出;为了降低时间复杂度。可以使用循环队列。在进队列和出队列时时间复杂度都是O(1);typedef int QElemType;typedef struct{ QElemType data[QueueSize]; int front;//指向队列中第一个元素的指针原创 2016-03-11 15:35:28 · 1198 阅读 · 0 评论 -
顺序栈,两栈共享空间,链栈
1.顺序栈的基本操作:栈是一种特殊的线性表,线性表的顺序存储结构和链式存储结构同样适用于栈。LIFO应用:浏览网页时的撤销回退操作#include #include using namespace std;#define MAXSIZE 1000typedef int SElemType;typedef struct{ SElemType data[MAXSIZE]原创 2016-03-10 21:37:37 · 1044 阅读 · 0 评论 -
循环双向链表的基本操作
#include #include #include using namespace std;typedef int ElemType;typedef struct DulNode{ ElemType data; struct DulNode *prior; struct DulNode *next;}DulNode,*DuLinkList;DuLinkLi原创 2016-03-10 14:24:31 · 398 阅读 · 0 评论 -
单链表的创建(头插法尾插法),插入,删除
#include #include #include using namespace std;typedef int ElemType;typedef struct Node{ ElemType data; struct Node *next;}Node,*LinkedList;//把struct Node *定义为新类型LinkList,是一个结构体的指针。vo原创 2016-03-09 20:28:36 · 9587 阅读 · 0 评论 -
c++中set与map用法详解
关于STLc++ STL之所以得到广泛赞誉,也被很多人使用,不只是提供了向vector,string,list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和常用的数据结构操作。vector封装了数组,list封装了链表,map和set封装了二叉树等。在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供了常用操作,如:插入,排序,删除,查找等。1.set和map...原创 2019-01-03 10:18:17 · 6863 阅读 · 0 评论