数据结构
c.
这个作者很懒,什么都没留下…
展开
-
判断一棵二叉树是否为二叉排序树
二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; (3)左、右子树也分别为二叉排序树;#include<stdio.h>#i原创 2017-10-16 19:22:02 · 30993 阅读 · 12 评论 -
C语言数据结构——单链表
链表存储结构定义不同于顺序的线性表,链表的存储单元不连续,数据元素可以存在内存任何未被占用的任意位置。因此除了要存储数据元素的信息之外,还要存储它的后继元素的存储地址,因此每个元素Ai与其后继的元素Ai+1是通过一个存储地址来关联的。 对于元素Ai来说,除了本身的数据,还有一个指向Ai+1的数据域,通过这个数据域才能够索引到Ai+1元素,我们把存储数据的域叫做数据域,存储地址部分的域叫做指针域。指原创 2017-10-07 21:40:16 · 1701 阅读 · 2 评论 -
C语言数据结构——线性表
顺序存储定义线性表是顺序存储结构,他是用一段地址连续的存储单元依次存储线性表的数据元素线性表的顺序存储结构//线性表顺序存储结构#define MAXSIZE 20 //存储空间初始分配最大的sizetypedef int ElemType; //假定ElemType的类型为inttypedef struct { ElemType data[MAXSIZE]; //数组来存储线性表原创 2017-10-04 16:30:57 · 3042 阅读 · 1 评论 -
求字符串的子集
之前参加了一次面试的笔试考试,里面有一道:求字符串的子集,例如求1234的子串,有1,2,3,4,12,13,14,23,24,34,123,124,134,234,1234..,当时居然没想出怎么做,后面进入二面的时候,面试官问了笔试这道题现在觉得应该怎么做,很遗憾的是我笔试之后没有认真的思考,吸取这次教训,参考了网上的一些思路,利用递归是最简单的方法求出一个字符串所有的子集。集合中的所有元素对于原创 2017-05-06 11:41:45 · 6066 阅读 · 0 评论 -
找出两个链表的第一个公共结点
两个单向链表,找出它们的第一个公共结点。链表结点的定义为:struct ListNode{ int m_nKey; ListNode* m_pNext;};如果两个单向链表有公共的结点,也就是说两个链表从某一结点开始,它们的 m_pNext 都指向同一个结点。但由于是单向链表的结点,每个结点只有一个 m_pNext ,因此从第一个公共结点开始,之后它们所有结点都原创 2017-03-19 13:03:01 · 727 阅读 · 0 评论 -
最长公共子序列
如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子序列。注意,并不要求子序列(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子序列,并打印出最长公共子序列。 例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子序列,则输出它们的长度4,并打印任意一个子序列。动态规划原创 2017-03-19 12:58:24 · 660 阅读 · 0 评论 -
翻转句子中单词的顺序
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。首先将整个句子按字符翻转,然后再将其中每个单词的字符旋转。时间复杂度:O(n),空间复杂度:O(1);#include<iostream>#include<string>using namespace std;//方法一:依次读入句子中的每个单词,并将它们放入一个栈中原创 2017-03-19 12:53:50 · 1705 阅读 · 0 评论 -
判断是否为平衡二叉树
判断是否为平衡二叉树原创 2016-05-11 22:05:06 · 725 阅读 · 0 评论 -
设计一个镜面影射算法,将一个二叉树的每个节点的左,右子结点交换位置
设计一个镜面影射算法,将一个二叉树的每个节点的左,右子结点交换位置原创 2015-09-09 13:41:05 · 1913 阅读 · 0 评论 -
数据结构——改进的冒泡排序(c++)
数据结构——改进的冒泡排序(c++)原创 2015-06-21 20:32:50 · 782 阅读 · 0 评论 -
数据结构——希尔排序(c++)
数据结构——希尔排序(c++)原创 2015-06-21 20:28:43 · 651 阅读 · 0 评论 -
数据结构——直接选择排序(c++)
数据结构——直接选择排序(c++)原创 2015-06-21 20:25:13 · 724 阅读 · 0 评论 -
数据结构——直接插入排序(c++)
数据结构——直接插入排序(c++)原创 2015-06-21 20:21:36 · 1667 阅读 · 0 评论 -
数据结构——二叉树2(c++)
数据结构——二叉树2(c++)原创 2015-06-21 20:02:40 · 798 阅读 · 0 评论 -
数据结构——二叉树1(c++)
数据结构——二叉树1(c++)原创 2015-06-21 17:30:27 · 778 阅读 · 0 评论 -
数据结构——链式队列(c++)
数据结构——链式队列(c++)原创 2015-06-20 19:59:02 · 1014 阅读 · 0 评论 -
数据结构——循环队列(c++)
数据结构——循环队列(c++)原创 2015-06-20 18:25:49 · 741 阅读 · 0 评论 -
数据结构——链式栈(c++)
数据结构——链式栈(c++)原创 2015-06-20 18:02:58 · 1041 阅读 · 0 评论 -
数据结构——顺序栈(c++)
数据结构——顺序栈(c++)原创 2015-06-20 17:25:16 · 982 阅读 · 0 评论 -
数据结构——链表(c++)
数据结构——链表(c++)原创 2015-06-18 12:50:09 · 1096 阅读 · 0 评论 -
数据结构——顺序表(c++)
数据结构——顺序表(c++)原创 2015-06-18 12:02:45 · 1161 阅读 · 0 评论 -
快速排序算法
快速排序算法原创 2015-06-13 10:53:50 · 372 阅读 · 0 评论 -
非递归实现归并排序算法
非递归实现归并排序算法原创 2015-06-13 10:36:08 · 1194 阅读 · 0 评论 -
归并排序算法
归并排序算法原创 2015-06-13 10:21:02 · 629 阅读 · 0 评论 -
希尔排序算法
希尔排序算法原创 2015-06-13 09:56:20 · 500 阅读 · 0 评论 -
直接插入排序算法
直接插入排序算法原创 2015-06-13 09:46:31 · 457 阅读 · 0 评论 -
简单选择排序算法
简单选择排序算法原创 2015-06-12 21:44:36 · 649 阅读 · 0 评论 -
冒泡排序算法(优化版)
冒泡排序算法(优化版)原创 2015-06-12 21:32:00 · 569 阅读 · 0 评论 -
冒泡排序算法
冒泡排序算法原创 2015-06-12 21:31:19 · 351 阅读 · 0 评论 -
冒泡排序算法(初级版)
冒泡排序算法(初级版)原创 2015-06-12 21:30:39 · 524 阅读 · 0 评论 -
设计一个算法,判断字符串S是否对称
设计一个算法,判断字符串S是否对称原创 2015-06-12 20:35:37 · 4625 阅读 · 0 评论 -
统计输入的字符串各个不同字符出现的频度,并存入文件,合法字符为:“A~Z”和“0~9”
统计输入的字符串各个不同字符出现的频度,并存入文件合法字符为:“A~Z”和“0~9”原创 2015-06-12 20:33:07 · 9209 阅读 · 2 评论 -
求所有包含字符串S中而不包含字符串T中的字符串,构成的新串r以及r中每一个字符在S中第一次出现的位置
/*编写算法,求所有包含字符串S中而不包含字符串T中的字符串(S中重复的字符只选一个)*//*构成的新串r以及r中每一个字符在S中第一次出现的位置*/#include<iostream>#include<string>using namespace std;bool compare_T(string S,string T,int Location);bool compare_R(strin原创 2015-06-12 20:28:48 · 9694 阅读 · 1 评论 -
编写算法,从字符串S中删除所有和字符串t相同的字符
/*编写算法,从字符串S中删除所有和字符串t相同的字符*/#include<iostream>#include<string>using namespace std;void move(string * S,int location);void compare(string * S,string t){ int length_S=S->len...原创 2015-06-12 20:26:26 · 15895 阅读 · 6 评论 -
编写算法,对给定的字符串str,返回其最长重复子串及其下标位置
编写算法,对给定的字符串str,返回其最长重复子串及其下标位置。*/例如,str="abcdacdac",则子串"cdac"是str中最长的重复子串,下标为2*/原创 2015-06-12 20:24:41 · 2936 阅读 · 2 评论 -
已知s="(XYZ)+*",t="(X+Z)*Y",利用联接,求子串和转换等基本运算,将s转化为t
已知s="(XYZ)+*",t="(X+Z)*Y",利用联接,求子串和转换等基本运算,将s转化为t原创 2015-06-12 20:22:02 · 5517 阅读 · 0 评论 -
将栈S中的元素逆置,使用额外的一个栈L和非数组变量
将栈S中的元素逆置,使用额外的一个栈L和非数组变量原创 2015-06-12 20:20:21 · 3924 阅读 · 0 评论 -
S是一个存放在数组中,长为n的字符串,试编写一个程序将S按下述要求改造后输出
S是一个存放在数组中,长为n的字符串,试编写一个程序将S按下述要求改造后输出:将S的所有偶数位上的字符按照其原来的下标从大到小的次序放在S的后半部分,将S的所有奇数位上的字符按照其原来的下标从小到大的次序放在S的前半部分原创 2015-06-12 20:17:57 · 3044 阅读 · 0 评论 -
并查集实现Kruskal算法
并查集实现Kruskal算法原创 2015-06-10 22:54:36 · 604 阅读 · 0 评论 -
最小生成树Prim算法
最小生成树Prim算法原创 2015-06-07 18:07:40 · 720 阅读 · 0 评论