
数据结构
qwertdsdf
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
队列-链队列
结构:typedef int status;typedef int qelemtype;typedef struct qnode { qelemtype data; struct qnode *next;}qnode,*queueptr;typedef struct { queueptr front; queueptr rear;}linkqueue;初始化:status in...原创 2018-06-12 14:20:36 · 208 阅读 · 0 评论 -
二叉树顺序存储
该存储结构适用于 完全二叉树,非完全二叉树会造成空间浪费#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#pragma warning (disable:4996)#define MAX_TREE_SIZE 100#define OK...原创 2018-10-15 16:28:28 · 942 阅读 · 0 评论 -
循环队列
循环队列:空出一个元素的大小来判断是否队列满#include <stdio.h>#include <stdlib.h>#include <string.h>#pragma warning (disable:4996)#define OK 0#define ERROR -1#define M 10typedef int elemtype;...原创 2018-10-11 15:52:15 · 191 阅读 · 0 评论 -
顺序队列-一维数组实现和堆空间实现
一维数组实现:#include <stdio.h>#include <stdlib.h>#include <string.h>#pragma warning (disable:4996)#define OK 0#define ERROR -1#define MAXLEN 10typedef int elemtype;typedef in...原创 2018-10-11 15:28:42 · 317 阅读 · 0 评论 -
链栈的基本操作
栈是一种特殊的线性表,LIFO。数据类型:typedef int elemtype;typedef int status;typedef struct snode { elemtype data; struct lnode *next;}snode,*linkstack;链栈初始化: 同线性表status initstack(linkstack *s) { if ...原创 2018-10-01 20:56:22 · 403 阅读 · 0 评论 -
树-二叉树
顺序存储结构仅适用于完全二叉树。二叉树的结点由一个数据元素和分别指向左、右子树的两个分支构成,则表示二叉树的链表中的结点至少包含3个域:数据域和左右指针域。有时,为了便于查找结点的双亲,则还可在结点结构中增加一个指向其双亲结点的指针域。这两种二叉树的存储结构分别称之为二叉链表和三叉链表。链表的头指针指向二叉树的根结点。在n个结点的二叉链表中有n+1个空链域。利用空链域存储其他有用信息,从而得到另一...原创 2018-07-13 15:40:39 · 119 阅读 · 0 评论 -
树
树是 n(n>=0)个结点的有限集。任意一棵非空树中:有且仅有一个特定的称为根的结点当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2...,Tm,其中每个集合本身又是一棵树,称为根的子树树的结构定义是一个递归定义,即在树的定义中又用到了树的概念。树的结点包含了一个数据元素以及若干指向其他子树的分支。结点拥有的子树数称为结点的度。度为0的结点称为叶子或终端结点。度...原创 2018-07-12 16:31:42 · 224 阅读 · 0 评论 -
图
图是由顶点和连接顶点的边构成的离散结构。每条边都连接两个不同的顶点且没有两条不同的边连接一对相同顶点的图称为简单图。有多重边连接同一对顶点的图称为多重图。一个顶点连接到它自身的边。这样的边称为环。包含环或存在多边连接同一对顶点或同一个顶点的图,称为伪图。当对一个无向图的每一条边都赋予方向,就得到了一个有向图,当一个有向图不包含环或多重有向边时,就称为简单有向图。包含从一个顶点指...原创 2018-07-23 17:29:06 · 436 阅读 · 0 评论 -
数据结构概念
数据在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。数据元素是数据的基本单位,在计算机程序中通常作为一个整体考虑和处理。一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。数据对象是性质相同的数据元素的集合,是数据的一个子集。数据结构是相互之间存在一种或多种特定关系的数据元素的集合。根据数据元素之间关系的特性,通常有下列4类基本结构:集合线性结构树形结构图状结...原创 2018-07-10 10:35:32 · 196 阅读 · 0 评论 -
广义表
广义表是线性表的推广。广义表一般记作LS=(a1,a2,....,an),其中,LS是广义表的名称,n是它的长度。在线性表中,ai只限于单个元素,而在广义表中,ai可以是单个元素,也可以是广义表,分别称为LS的原子和子表。当广义表LS非空时,称第一个元素a1为LS的表头,称其余元素组成的表为LS的表尾。广义表的定义是一个递归的定义,因为在描述广义表时又用到了广义表的定义。广义表...原创 2018-07-16 15:20:14 · 302 阅读 · 0 评论 -
栈-顺序栈
结构:typedef int selemtype;typedef struct { selemtype *base; selemtype *top; int stacksize;}sqstack;栈的初始化:status initstack(sqstack *s) { s->base = malloc(sizeof(selemtype)*STACK_INIT_SIZE); if...原创 2018-06-08 13:39:22 · 294 阅读 · 0 评论 -
线性表-循环双链表的基本操作
结构:typedef struct dulnode { elemtype data; struct dulnode *prior; struct dulnode *next;}dulnode,*dulinklist;初始化:status initlist(dulinklist *l) { *l = malloc(sizeof(dulnode)); if (!*l) re...原创 2018-06-06 15:20:09 · 274 阅读 · 0 评论 -
线性表-单链表的基本操作
结构:typedef struct lnode { elemtype data; struct lnode *next;}lnode,*linklist;初始化:status initlist(linklist *l) { *l = malloc(sizeof(lnode)); if (!*l) return ERROR; (*l)->next = NULL; return O...原创 2018-06-06 15:13:36 · 1957 阅读 · 0 评论 -
线性表-顺序表的基本操作
结构:typedef int status;typedef int elemtype;typedef struct { elemtype *elem; int length; int listsize;}sqlist; 线性表初始化: LIST_INIT_SIZE为宏status initlist(sqlist *l) { //initial list l->elem = m...原创 2018-06-05 20:58:21 · 329 阅读 · 0 评论 -
二叉树链式存储-二叉链表
二叉树的链式存储有:二叉链表 三叉链表 双亲链表 线索链表 二叉链表容易找到孩子,但是不易找到双亲,三叉链表则弥补这一缺点#include <stdio.h>#include <stdlib.h>#include <string.h>#pragma warning (disable:4996)#define OK 0#def...原创 2018-10-15 16:32:07 · 516 阅读 · 0 评论