数据结构学习
China震震
正在学习acm中,热爱it,大家一起交流学习啊!!!度厂实习生。
展开
-
栈的顺序表实现
#include using namespace std;const int stacksize = 100; //*****************************************************声明栈的顺序表的类class SeqStack{public: SeqStack(){top=-1;}//构造函数,只需要将top值设定为-原创 2016-09-20 14:53:22 · 829 阅读 · 0 评论 -
数据结构之快速排序(c++)
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序原创 2017-03-19 11:20:21 · 575 阅读 · 1 评论 -
约瑟夫问题(猴子选大王) 链表实现
总时间限制: 1000ms 内存限制: 65536kB描述约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。输入每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 0 0原创 2016-12-24 17:28:20 · 6056 阅读 · 1 评论 -
数据结构顺序查找验证程序
算法分析:顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的数的具体位置。原理是让关键字与队列中的数从最后一个开始逐个比较,直到找出与给定关键字相同的数为止,它的缺点是效率低下。 题目:输入描述:各个命令以及相关数据的输入格式如下: 第一行输入关键码集合中关键码的数目,假设输入的值为n(n为大于0的正整数) ;第二行输入n个关键码,以空格隔开,注意是整型;原创 2016-12-03 09:24:42 · 2652 阅读 · 0 评论 -
无向图有向图邻接矩阵表示法
1.无向图的邻接矩阵表示法验证程序 采用邻接矩阵表示无向图,完成图的创建、图的深度优先遍历、图的广度优先遍历操作。其中图的顶点信息是字符型,图中顶点序号按字符顺序排列。本输入样例中所用的图如下所示:输入描述:第一行输入两个值,第一个是图中顶点的个数,第二个是图中边的条数第二行输入各顶点的信息,即输入每个顶点字符第三行开始输入每条边,每条边的形式为两个原创 2016-12-03 09:16:52 · 6591 阅读 · 0 评论 -
判断一个字符串中括号是否匹配
从键盘读入一个字符串,其中只含有() {} [ ] ,判断该字符串中的每种括号是否成对出现。提示:可借助栈来实现,括号必须配对出现,如()[ ]{},这是匹配的括号,如([{])},这是不匹配的括号(中间无空格)。输入描述:输入一个字符串(中间不包含空格)输出描述:匹配输出yes,否则输出no输入样例:(([{}]))输出样例:yes思路:原创 2016-12-03 09:02:26 · 16194 阅读 · 3 评论 -
设单链表以非递减有序排列,设计算法实现在单链表中删去值相同的多余结点。
#include using namespace std;typedef int T;struct node{ T data; node *next;};class LinkList{public: LinkList(); //无参数的构造函数 LinkList(T a[],int原创 2016-10-06 14:06:00 · 14683 阅读 · 0 评论 -
单链表就地逆置
#include using namespace std;typedef int T;struct node{ T data; node *next;};class LinkList{public: LinkList(); //无参数的构造函数 LinkList(T a[],int n); //有参数的构造函数 v原创 2016-10-06 12:45:01 · 590 阅读 · 0 评论 -
(C++)二叉树的建立与递归方式遍历
数据结构,二叉树的实现与遍历,采用递归的方法,计入下来,共同学习分享,希望大家多跟我说一些写代码的小技巧。#include #include using namespace std;typedef char T;struct BiNode{ T data; BiNode *lchild,*rchild;};class BiTree{public: BiTree(){r原创 2016-10-18 14:29:07 · 1455 阅读 · 0 评论 -
队列实现约瑟夫问题
队列解决约瑟夫问题,昨天灵机一动想出来的,感觉还可以。#include #include using namespace std;void yueSeFu(int n,int m){ int temp,i; queueQ; cout<<"最开始的序列为"<<" "; for(i=1;i<=n;i++){ cout<<i<<" ";原创 2016-11-02 22:52:41 · 1797 阅读 · 0 评论 -
分治法举例之快速排序,归并排序
运用分治策略解决的问题一般来说具有以下特点:1、原问题可以分解为多个子问题这些子问题与原问题相比,只是问题的规模有所降低,其结构和求解方法与原问题相同或相似。2、原问题在分解过程中,递归地求解子问题由于递归都必须有一个终止条件,因此,当分解后的子问题规模足够小时,应能够直接求解。3、在求解并得到各个子问题的解后应能够采用某种方式、方法合并或构造出原问原创 2017-05-20 15:38:22 · 709 阅读 · 0 评论