![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 73
xwchao2014
这个作者很懒,什么都没留下…
展开
-
数据结构—希尔排序
希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序,是非稳定排序算法。基本思想:将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小的增量,再将数组分割为多个子序列进行排序......最后选择增量为1,即使用直接插入排序,使最终数组成为有序。代原创 2015-05-06 10:21:16 · 552 阅读 · 0 评论 -
基数排序与桶排序C实现
一. 算法描述基数排序(以整形为例),将整形10进制按每位拆分,然后从低位到高位依次比较各个位。主要分为两个过程:(1)分配,先从个位开始,根据位值(0-9)分别放到0~9号桶中(比如53,个位为3,则放入3号桶中)(2)收集,再将放置在0~9号桶中的数据按顺序放到数组中重复(1)(2)过程,从个位到最高位(比如32位无符号整形最大数4294967296,最高位10位)以【52转载 2015-04-01 11:05:05 · 3263 阅读 · 0 评论 -
数据结构—栈和队列的相互模拟
1、两个栈模拟一个队列栈是LILO,而队列是FIFO,所以可以:入队,直接进A号栈;出队,先判断B号栈是否有元素,有元素就直接弹出栈顶即队首,如果B号栈没有元素,则将A号栈的元素顺序弹出并进B号栈。原创 2015-05-18 16:00:20 · 524 阅读 · 0 评论 -
数据结构之最短路径(Dijkstra 和 Floyed)
原理直接百度,这里只给出c++实现#include using namespace std;#define MAXVEX 6#define INF 10000void Dijkstra(int cost[][MAXVEX], int numsOfNode, int sourceNode);void Folyed( int cost[][MAXVEX], int numsOfNode)原创 2015-07-01 20:10:23 · 1187 阅读 · 0 评论 -
数据结构—处理对列的上溢和下益问题
对应于算法导论中的P131,重写ENQUEUE和DEQUEUE,使之能够处理队列的上溢和下益#include #include using namespace std;#define MaxSize 100typedef struct queue{ int data[MaxSize]; int head,tail;}SqQueue;/*两个假定,队尾指针指示队尾元素在数组中的原创 2015-05-18 15:50:46 · 1187 阅读 · 0 评论 -
数据结构—数组实现两个栈,不上溢
问题描述:说明如何用一个数组A[1..n]来实现两个栈,使得两个栈中的元素总数不到n时,两者都不会发生上溢,注意PUSH和POP操作的时间应为O(1)。(算法导论第三版P131)思路:stack1,stack2的base分别在数组的两端。stack1每次push的时候top + 1,stack2每次push时top-1,初始时top1=base1,top2=base2,判断是否用空余空间可以用原创 2015-05-18 10:45:29 · 767 阅读 · 0 评论 -
面试题1——栈的最大值问题
面试题——栈的最大值问题常数时间求栈的最大值问题描述:一个栈stack,具有push和pop操作,其时间复杂度皆为O(1)。设计算法max操作,求栈中的最大值,该操作的时间复杂度也要求为O(1)。可以修改栈的存储方式,push,pop的操作,但是要保证O(1)的时间复杂度,空间时间复杂度无要求。算法描述:一个存储所有最大值转载 2015-05-06 22:04:39 · 1310 阅读 · 0 评论 -
数据结构—单链表的插入
数据结构—单链表的插入关于单链表的概念以及一些基本的知识就不说明了,直接上代码!整个链表有一个根节点,用以指向第一个元素,在插入的过程中要考虑几个问题:1、插入的位置是不是第一个节点与根节点之间2、插入的位置是否是在最后(要考虑当前链表是否为空)代码1:#include #include typedef struct NODE{ struct NODE *lin原创 2015-05-13 21:52:29 · 988 阅读 · 0 评论 -
字符串中连续出现最多的子串 & 字符串中最长重复子串
字符串中连续出现最多的子串 & 字符串中最长重复子串 字符串中连续出现最多的子串 & 字符串中最长重复子串,这两个问题都可以用后缀数组来表示,至于后缀数组可以参考编程珠玑P156;后缀数组就是定义一个数组指针,分别指向字符串中的对应位置,如下:a b c a b c a b c d e .substr[0]b c a b c a b c d e ....subst原创 2015-08-18 21:20:10 · 4100 阅读 · 0 评论