线性表的定义 线性表(List):
零个或多个数据元素的有限序列。
【注意】:
序列,即元素之间是有顺序的。若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后记。
线性表强调是有限的.
用数学语言进行定义:
若将线性表记为(a1,…, ai-1, ai, ai+1,…, an),则表...
分类:
其他好文 时间:
2016-05-06 12:43:13
阅读次数:
157
二叉树是一种非线性结构,遍历二叉树几乎都是通过递归或者用栈辅助实现非递归的遍历。用二叉树作为存储结构时,取到一个节点,只能获取节点的左孩子和右孩子,不能直接得到节点的任一遍历序列的前驱或者后继。而线索二叉树利用二叉树中指向左右子树的空指针来存放节点的前驱和..
分类:
其他好文 时间:
2016-05-05 17:49:46
阅读次数:
210
二叉树是一种非线性结构,遍历二叉树几乎都是通过递归或者用栈辅助实现非递归的遍历。用二叉树作为存储结构时,取到一个节点,只能获取节点的左孩子和右孩子,不能直接得到节点的任一遍历序列的前驱或者后继。为了保存这种在遍历中需要的信息,我们利用二叉树中指向左右子树的..
分类:
其他好文 时间:
2016-05-05 17:48:45
阅读次数:
233
为什么会有线索化二叉树呢?二叉树是一种非线性结构,遍历二叉树几乎都是通过递归或者用栈辅助实现非递归的遍历。用二叉树作为存储结构时,取到一个节点,只能获取节点的左孩子和右孩子,不能直接得到节点的任一遍历序列的前驱或者后继。为了保存这种在遍历中需要的信息,我们..
分类:
其他好文 时间:
2016-05-05 07:16:07
阅读次数:
199
题目 给定一个单链表中的表头和一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。并在删除该节点后,返回表头。 思路 因为O(1)内删除所以 不能从头节点去遍历找他的前驱节点 因为给的是待删除节点, 所以如果删除下一个节点可以在o(1)复杂度完成 所以 把当前节点覆盖成下一 ...
分类:
其他好文 时间:
2016-05-02 13:01:21
阅读次数:
167
双向链表介绍
双向链表,如同其名所暗示的那样,链表元素之间由两个指针链接。双向链表中的每一个元素都由3部分组成:除了数据域成员和next指针外,每个元素还包含一个指向其前驱元素的指针,称为prev指针。双向链表的组成是这样的:将一些元素链接在一起使得每个元素的next指针都指向其后继的元素,而每个元素的prev指针都指向其前驱元素。为了标识链表的头和尾,将第一个元素的prev指针和...
分类:
其他好文 时间:
2016-04-29 19:06:43
阅读次数:
250
1.概念
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。
结构图如下所示:
2.基本操作实例
DoubleList.cpp
#include "stdafx.h"...
分类:
编程语言 时间:
2016-04-29 17:47:07
阅读次数:
221
二叉树的遍历运算是将二叉树中节点按一定规律线性化的过程,当二叉链表作为存储结构时,只能找到节点的左、右孩子信息,而不能直接得到节点在遍历序列中的前驱和后继信息。线索化二叉树能够解决这样的问题,将二叉链表中的空指针域填上相应节点的遍历前驱或后继节点的地址,而..
分类:
其他好文 时间:
2016-04-27 22:51:44
阅读次数:
353
上一篇博客主要总结了单向链表,这次再总结一下双向链表. 1.概念 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。 结构图如下所示: 2.基本操作 ...
分类:
编程语言 时间:
2016-04-27 09:26:52
阅读次数:
193
#define_CRT_SECURE_NO_WARNINGS1
#include<iostream>
usingnamespacestd;
enumPointerTag{THREAD,LINK};//枚举
前言:为了遍历的方便,我们在二叉树中引入前驱和后序,这样就储存了相关信息。
其结构如下:template<classT>
structBinaryTreeThdNode
{
T_data;..
分类:
其他好文 时间:
2016-04-27 07:09:56
阅读次数:
132