数据结构
xpy123
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
静态链表
单链表的相对劣势:单链表的实现严重依赖指针,数据元素中必须包含一个额外的指针域,没有指针的程序设计语言无法实现。静态链表是在顺序表的基础上利用数组实现的单链表。头文件:#ifndef _STATICLIST_H_#define _STATICLIST_H_typedef void StaticL原创 2015-05-08 09:44:57 · 343 阅读 · 0 评论 -
线性表的链式存储结构
链式存储定义:为了表示每个数据元素与其直接后继元素之间的逻辑关系,每个元素除了存储本身的信息外,还需要存储指示其直接后继的信息。单链表包括:表头结点:链表中的第一个结点,包含指向第一个数据元素的指针以及链表自身的一些信息。数据结点:链表中代表数据元素的结点,包含指向下一个数据元素的指针和数据元素的信息。尾结点: 链表中的最后一个数据结点,其下一个元素指针为空,表示无后继原创 2015-05-08 08:30:41 · 335 阅读 · 0 评论 -
线性表线性存储结构
线性表存数结构分为:顺序存储结构和链式存储结构顺序存储结构: 用一段地址连续的存储单元依次存储线性表中的数据元素。在C语言中可以用一维数组来实现顺序存储结构。1、存储空间的起始位置:数组node2、线性表的最大容量:数组长度 MAXSIZE3、线性表的当前长度:length#define MAXSIZE 20typedef struct _tag_list原创 2015-05-07 21:37:59 · 370 阅读 · 0 评论 -
二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
一、基本概念每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒。性质:1、非空二叉树的第n层上至多有2^(n-1)个元素。2、深度为h的二叉树至多有2^h-1个结点。满二叉树:所有终端都在同一层次,且非终端结点的度数为2。在满二叉树中若其深度为h,则其所包含的结点数必为2^h-1。完全二叉树:除了最大的层次即成为一颗满转载 2015-05-13 16:59:26 · 402 阅读 · 0 评论 -
递归的应用实战一
列一: 斐波拉契数列strlen递归解法传统解法:int strlen(char* s){int n = 0;while(*s){n++;s++;}return n;}递归解法原创 2015-05-09 11:07:49 · 294 阅读 · 0 评论 -
双链表、链式栈、链式队列 及实现
一、双链表在单链表的基础上再增加一个指向它前驱的指针,就构成了双链表。所以双链表有三个变量:数据信息info、前驱指针llink、后继指针rlink。 二、双链表操作和实现 由于双链表也为单链表的一种变型,一些相似的操作就没一一列举,可以参考数据结构(四)——单链表 、带头结点的单链表、循环链表 及其实现 1、转载 2015-05-13 17:00:37 · 355 阅读 · 0 评论 -
单链表 、带头结点的单链表、循环链表 及其实现
一、 链式存储 以结点的形式存储数据。除了存放一个结点的信息外,还需附设指针。 数据在内存中存储是不连续的,每个结点只能也只有它能知道下一个结点的存储位置。 二、单链表 单链表是线性表链式存储的一种,其储存不连续。单链表的数据结构中包含两个变量:数据和指向下一结点的指针。转载 2015-05-13 16:58:01 · 535 阅读 · 0 评论 -
队列定义及实现、循环队列实现
一、队列 队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将最后被删除的元素,因此队列又称为“先进先出”(FIFO—first in first out)的线性表。转载 2015-05-13 16:54:53 · 581 阅读 · 0 评论 -
栈与递归
上面这个函数通过递归实现字符串的逆序输出。原创 2015-05-09 09:21:02 · 316 阅读 · 0 评论 -
栈的应用实战二
原创 2015-05-08 17:54:24 · 317 阅读 · 0 评论 -
栈的应用实战一
小结:原创 2015-05-08 17:42:46 · 361 阅读 · 0 评论 -
栈的定义和实现
栈的顺序结构实现,代码复用----线性表的顺序存储结构----顺序表栈的链式结构实现----代码复用----单链表原创 2015-05-08 16:35:42 · 384 阅读 · 0 评论 -
循环链表
循环链表的应用:头文件:#ifndef _CIRCLELIST_H_#define _CIRCLELIST_H_typedef void CircleList;typedef struct _tag_CircleListNode CircleListNode;struct _tag_CircleListNode{ CircleL原创 2015-05-08 10:52:15 · 318 阅读 · 0 评论 -
双向链表
单链表的局限:头文件:#ifndef _DLINKLIST_H_#define _DLINKLIST_H_typedef void DLinkList;typedef struct _tag_DLinkListNode DLinkListNode;struct _tag_DLinkListNode{原创 2015-05-08 11:04:25 · 319 阅读 · 0 评论
分享