SDUST 数据结构
Minion_w
这个作者很懒,什么都没留下…
展开
-
顺序表的实现以及简单的 插入,删除,查找,输出操作
L是一个顺序表,函数Status ListInsert_Sq(SqList &L, int pos, ElemType e)是在顺序表的pos位置插入一个元素e(pos应该从1开始),函数Status ListDelete_Sq(SqList &L, int pos, ElemType &e)是删除顺序表的pos位置的元素并用引用型参数e带回(pos应该从1开始),函数int ListLocate原创 2017-09-05 21:46:18 · 4330 阅读 · 0 评论 -
插入排序:直接插入, 折半插入,希尔插入
基于动态规划思想的插入排序:直接插入排序,折半插入排序,希尔插入排序原创 2017-11-21 23:23:35 · 340 阅读 · 0 评论 -
PTA二叉搜索树——二叉搜索树的基本操作
二叉排序树的基本操作原创 2017-12-11 20:55:01 · 1698 阅读 · 0 评论 -
KMP
Code://KMP#includeusing namespace std;const int maxn = 100000;int next[maxn];void GetNext(char *P) ; //未改进的KMP,next[i]数组中代表的值是如果当前i位置匹配不成功, 指针指到模式串的哪一个位置(下标)void GetNNext(char *P); //改进的KMP原创 2017-12-04 00:23:17 · 184 阅读 · 0 评论 -
选择排序初步之 简单选择排序
Code://简单选择排序/*简单选择排序算法实现方法: 一趟简单选择排序的操作为: 通过n-i各关键字之间的比较, 从i ~ n关键字中找出最小的和第i个进行交换 一共进行n-1趟排序 所以算法的时间复杂度为O(n^2) 比较的次数为O(n^2), 交换的次数为O(n)改进后的简单选择排序: ------>>>>> 堆排序 ^-^*/#i原创 2017-12-04 09:53:55 · 288 阅读 · 0 评论 -
循环队列的表示与实现
#includeusing namespace std;//-------------循环队列 ——队列的顺序存储结构 ------------#define MAXQSIZE 100#define ERROR 0#define OK 1typedef int QElemType;typedef int Status;typedef struct{ QElemType *原创 2017-10-08 11:15:33 · 638 阅读 · 0 评论 -
快速排序
运用递归策略的,基于比较和交换的快速排序实现及详解原创 2017-12-10 17:41:34 · 291 阅读 · 0 评论 -
堆排序
Code://堆排序算法/*堆排序能实现有序的原理: 按照堆排序排完之后,每一个元素(除了叶子节点)都比他的左右孩子小,每一个点都这么排完之后, 最后形成的整个序列,一定是从小到大排列的。算法实现步骤: 构造初始小顶堆,从第一个非叶子节点开始进行调整 然后把每一个元素放到堆顶,进行一遍调整,进行n-1趟*/#includeusing namespac原创 2017-12-05 20:46:54 · 401 阅读 · 0 评论 -
有序链表的插入
已知一个递增有序链表L(带头结点,元素为整数),编写程序将一个新整数插入到L中,并保持L的有序输入:输入分三行第一行 元素个数第二行 元素的值,元素间用空格分隔。第三行 待插入的元素值输出:开头有空格Code:#include#include#include//函数状态码定义#define TRUE 1#define原创 2017-09-13 00:11:06 · 1620 阅读 · 0 评论 -
顺序栈的表示与实现
#includeusing namespace std;//------------ ADT Stack 的表示与实现---------------#define STACK_INIT_SIZE 100#define STACKINCREMENT 10#define OK 1#define ERROR 0typedef int SElemType;typedef int Statu原创 2017-10-07 22:53:30 · 564 阅读 · 0 评论 -
链队列的表示与实现
#includeusing namespace std;// ---------------单链队列 ---------队列的链式存储结构#define OK 1#define ERROR 0typedef int QElemType;typedef int Status;typedef struct QNode{ QElemType data; struct Q原创 2017-10-08 10:41:08 · 428 阅读 · 0 评论 -
图的顺序表存储
输入图的点数和边数(图顶点的标号在0开始);然后输入图的边;然后输入一个数字,代表在这个点开始进行遍历#include #include #include //typedef enum {false, true} bool;#define MaxVertexNum 10 /* 最大顶点数设为10 */#define INFINITY 65535 /* ∞设为双字节无原创 2017-10-29 19:55:43 · 899 阅读 · 0 评论 -
图的链式存储
输入两个数字,代表图的顶点数和边数 n , e后面 n 行,每一行的第一个数字 ve 代表与这个顶点相邻的点的个数后面 ve 个数,代表与这个数字相邻点的编号(从0开始)//#include #include//typedef enum {false, true} bool;#define MaxVertexNum 10 /* 最大顶点数设为10 */typedef原创 2017-10-29 21:27:54 · 877 阅读 · 0 评论 -
二叉树的基本操作
Code:#include#include#include//函数状态码定义#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -1#define INFEASIBLE -2#define NULL 0typedef int原创 2017-10-23 00:22:41 · 321 阅读 · 0 评论 -
Hash表的创建与查找(用链表解决冲突)
Code:#include #include #include #define KEYLENGTH 15 /* 关键词字符串的最大长度 */typedef char ElementType[KEYLENGTH+1]; /* 关键词类型用字符串 */typedef int Index; /* 散列地址类型 */原创 2017-11-19 17:42:34 · 1253 阅读 · 0 评论 -
归并排序
Code://空间复杂度中各种各样的数组是归并排序的一大混乱点//#include#include#include#includeusing namespace std;const int maxn = 1000000;int num[maxn];int T[maxn];int temp[maxn];void Merge(int s, int m, int t){原创 2017-11-26 23:58:54 · 289 阅读 · 0 评论 -
基数排序
Code:/*以十进制为底的基数排序正负数都可以用*/#include#include#include#include#include#include#includeusing namespace std;const int maxn = 100010;int num1[maxn];int num2[maxn];typedef queue Queue;vecto原创 2017-11-28 21:16:16 · 439 阅读 · 0 评论 -
快速排序
Code://空间复杂度中各种各样的数组是归并排序的一大混乱点//#include#include#include#includeusing namespace std;const int maxn = 1000000;int num[maxn];int T[maxn];int temp[maxn];void Merge(int s, int m, int t){原创 2017-11-26 23:57:29 · 185 阅读 · 0 评论