数据结构
文章平均质量分 60
OVS98
尽管走下去,不必逗留着,去采鲜花来保存,因为在路上,花会继续开放。
展开
-
数据结构之线性表5双链表
双向链表双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。/* 线性表的双向链表存储结构 */typedef struct DuLNode{ ElemType data; struct DuLNode *prior,转载 2014-09-18 17:10:56 · 405 阅读 · 0 评论 -
数据结构之队列11循环队列定义及实现
循环队列 循环队列可以更简单防止伪溢出的发生,但队列大小是固定的。#include #include typedef int Status; #define TRUE 1; #define FALSE 0; #define OK 1; #define ERROR -1; #define INFEASBIOLE -2; #define OVER原创 2014-10-08 21:13:36 · 499 阅读 · 0 评论 -
数据结构之串13初谈串及相关
字符串字符串(String),是由零个或多个字符组成的有限序列。它是编程语言中表示文本的数据类型。通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺原创 2014-10-10 19:03:44 · 502 阅读 · 0 评论 -
数据结构之串15定义及实现
#include #include #include #include typedef int Status;#define TRUE 1;#define FALSE 0;#define OK 1;#define ERROR -1;#define INFEASBIOLE -2;#define OVERFLOW 0;//串的存储结构typede原创 2014-10-11 16:44:54 · 473 阅读 · 0 评论 -
数据结构之串14匹配算法
本文系转载,原文链接:转载 2014-10-11 15:05:00 · 717 阅读 · 0 评论 -
C语言文本编辑
#include #include #include #include #define LEFT 0x4b00 /*←:光标左移*/#define RIGHT 0x4d00 /*→:光标右移*/#define DOWN 0x5000 /*↓键:光标下移*/#define UP 0x4800 /*↑键:光标上移*/#define ESC转载 2014-11-17 10:28:14 · 754 阅读 · 0 评论 -
数据结构之数组16定义及实现
#include //标准头文件,提供宏va_start,va_arg,va_end,用于存取变长参数表#include #include #define TRUE 1#define FALSE 0#define ERROR 0#define OVERFLOW -1#define OK 1#define INFEASIBLE -2#define MA原创 2014-10-15 20:43:18 · 637 阅读 · 0 评论 -
数据结构之稀疏矩阵17简要介绍
一、稀疏矩阵的定义 对于那些零元素数目远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse)。 人们无法给出稀疏矩阵的确切定义,一般都只是凭个人的直觉来理解这个概念,即矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素没有分布规律。 二、稀疏矩阵的压缩存储 由于稀疏矩阵中非零元素较少,零元素较多,因此可以采用只存储非零元素的原创 2014-10-17 20:29:13 · 1029 阅读 · 0 评论 -
数据结构之稀疏矩阵18浅谈三元组,行逻辑以及十字链表
1.三元组顺序表#define MAXSIZE 12500 //假设非零元个数的最大值为12500typedef int Status;typedef struct{ int i,j; //该非零元的行下标和列下标 ElemType e; }Triple;typedef struct{原创 2014-10-20 20:27:19 · 963 阅读 · 0 评论 -
数据结构之堆栈9一些补充
1.栈1.1 栈的定义栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。如下所示:结论:后进先出(Last In First Out),简称为LIFO线性表。栈的基本运算有六种:构造空栈:InitStack(S)、判栈空: StackEmpty(S)、判栈满: StackFull(S)、进栈: Push(S,x)、原创 2014-09-29 11:25:27 · 721 阅读 · 0 评论 -
数据结构之队列12阵列队列
#include #include #define TRUE 1;#define FALSE 0;#define OK 1;#define ERROR -1;#define INFEASBIOLE -2;#define OVERFLOW 0;typedef int Status;//阵列队列的存储结构struct Queue{ int原创 2014-10-08 21:13:10 · 555 阅读 · 0 评论 -
数据结构之堆栈7概括
C语言堆栈入门——堆和栈的区别原文:http://student.csdn.net/link.php?url=http://www.top-e.org%2Fjiaoshi%2Fhtml%2F427.html格式和部分内容稍作修改。在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:转载 2014-09-23 10:50:40 · 473 阅读 · 0 评论 -
数据结构之线性表6循环链表
循环链表循环链表是一种链式存储结构,它的最后一个结点指向头结点,形成一个环。因此,从循环链表中的任何一个结点出发都能找到任何其他结点。循环链表的操作和单链表的操作基本一致,差别仅仅在于算法中的循环条件有所不同。 单向循环链表存储结构和单链表相同。 /*设立尾指针的单循环链表的12个基本操作 */void Ini转载 2014-09-23 10:21:21 · 359 阅读 · 0 评论 -
数据结构之线性表4单链表(静态单链表)
静态链表(Static Linked List)是利用一组地址连续的内存空间来描述线性链表,把数组元素作为存储结点,数组元素类型包含数值域data和游标指示器cur。游标定义为整型,指示结点在数组中的相对位置。通常下标为零的元素被看成是头结点,其游标指示器指示线性链表的第一个结点。这种存储结构同样具有链式存储结构的主要优点,即在插入和删除元素时只需要修改游标而不用移动元素,但也有一些缺点,例如要预原创 2014-09-16 10:46:16 · 702 阅读 · 1 评论 -
数据结构之线性表1概括
线性表1.线性表(LinearList)是由n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1]组成的有限序列。其中:数据元素的个数n定义为表的长度 ="list".length() ("list".length() = 0(表里没有一个元素)时称为空表)将非空的线性表(n>=0)记作:(a[0],a[1],a[2],…,a[n-1])数据元素a[i](0≤i原创 2014-09-16 10:29:16 · 731 阅读 · 0 评论 -
数据结构之线性表2顺序表
顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。转载 2014-09-16 10:32:37 · 557 阅读 · 1 评论 -
数据结构之线性表3单链表(动态单链表)
动态单链表单向链表的数据结构可以分为两部分:数据域和指针域,数据域存储数据,指针域指向下一个储存节点的地址。/*線性表的單鏈表存儲结構*/typedef struct LNode{ ElemType data; struct LNode *next;}LNode, *LinkList; /*带有头结點的單鏈表的基本操作(12个)*/void InitList(转载 2014-09-16 10:39:11 · 551 阅读 · 1 评论 -
数据结构之堆栈8定义的实现
#include #include #include typedef int Status;#define TRUE 1;#define FALSE 0;#define OK 1;#define ERROR -1;#define INFEASBIOLE -2;#define OVERFLOW 0;#define STACK_INT_SIZE 100#de原创 2014-09-29 11:21:31 · 398 阅读 · 0 评论 -
数据结构之队列10单链队列定义及实现
队列队列,又称为伫列(queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加。单链队列单链队列使用链表作为基本数据结果,所以不存在伪原创 2014-10-08 19:50:32 · 518 阅读 · 0 评论 -
KMP算法求next数组和nextval数组的简单方法
原文链接:http://blog.sina.com.cn/s/blog_59b4a0b701015jtk.htmlnext数组的求解方法是:第一位的next值为0,第二位的next值为1。后面求解每一位的next值时,根据前一位进行比较。首先将前一位与其next值对应的内容进行比较,如果相等,则该位的next值就是前一位的next值加上1;如果不等,向前继续寻找next值对应的内容来与前一位进转载 2015-01-17 16:23:05 · 963 阅读 · 0 评论