静态链表的定义:
节点由一个一维数组和一个指针域组成,数组用来存放数据元素,而指针域里面的指针(又称游标)用来指向下一个节点的数组下标。这样的链表称之为静态链表。
链表中的数组第一个和最后一个位置需要特殊处理,不存数据。第一个位置(即数组0下标)的节点的指针用来存放备用链表的第一个节点的数组下标。最后一个位置(即数组长度MaxSize-1下标)的节点的指针用来存放指向有数值的第一个数据元素的数组...
分类:
编程语言 时间:
2015-07-19 18:05:09
阅读次数:
152
Iptables中的4表5链四张表:filter表、nat表、mangle表、raw表五条链:INPUT OUTPUT FORWARD PREROUTING POSTROUTINGFilter表:访问控制、规则匹配Nat表:地址转发Iptables规则组成数据包访问控制:ACCEPT、DROP、RE...
分类:
其他好文 时间:
2015-07-19 13:17:22
阅读次数:
99
线性表的链式存储结构,也称之为链式表,链表;链表的存储单元可以连续也可以不连续。
链表中的节点包含数据域和指针域,数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域。注意一个头结点和头指针的区别:
头指针:
指向链表的第一个节点的指针,若链表有头结点,则是指向头结点的指针;
头指针具有标识作用,所以常用头指针作为链表的名字;
不论链表是否为空,头指针都不为空;
是链表的必...
分类:
编程语言 时间:
2015-07-19 00:14:40
阅读次数:
196
队列相关基础内容参我的博文: 队列顺序存储 - 设计与实现 - API函数
队列也是一种特殊的线性表;可以用线性表链式存储来模拟队列的链式存储。
主要代码:
// linkqueue.h
// 队列链式存储API声明
#ifndef _LINKQUEUE_H_
#define _LINKQUEUE_H_
typedef void LinkQueue;
// 创建队列
LinkQue...
该题目的要求是判断一个单链表是否是回文链表,题目的难度在于O(n)时间和O(1)空间的限制。
由于单链表不能反向访问,所以不能直接通过原来的链表来判断,解题的思路是首先对原来的链表的前半部分进行判断,然后进行判断(如链表为“12344321” 反转之后为“43214321”)。想到这一点之后的实现就非常简单了,完整的代码如下所示:
class Solution {
public:
Li...
分类:
其他好文 时间:
2015-07-12 17:27:31
阅读次数:
108
基本概念
链式存储定义
为了表示每个数据元素与其直接后继元素之间的逻辑关系,每个元素除了存储本身的信息外,还需要存储指示其直接后继的信息。
表头结点
链表中的第一个结点,包含指向第一个数据元素的指针以及链表自身的一些信息
数据结点
链表中代表数据元素的结点,包含指向下一个数据元素的指针和数据元素的信息
尾结点
链表中的最后一个数据结点,其下一元素指针为空,表示无...
基本概念
设计与实现
插入元素算法
判断线性表是否合法
判断插入位置是否合法
把最后一个元素到插入位置的元素后移一个位置
将新元素插入
线性表长度加1
获取元素操作
判断线性表是否合法
判断位置是否合法
直接通过数组下标的方式获取元素
删除元素算法
判断线性表是否合法
判断删除位置是否合法
将元素取出...
1 package iYou.neugle.list; 2 3 public class MyChainList { 4 // 向链表尾部添加元素 5 public Node AddEnd(Node head, T data) { 6 Node nod...
分类:
编程语言 时间:
2015-07-10 12:56:47
阅读次数:
217
1. HashMap的数据结构
数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。
数组
数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;
链表
链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难...
分类:
其他好文 时间:
2015-07-09 11:28:07
阅读次数:
183
链表特点(单链表 双链表)优点:插入和删除非常快。因为单链表只需要修改Next指向的节点,双链表只需要指向Next和Prev的节点就可以完成插入和删除操作。缺点:当需要查找某一个节点的时候就需要一个节点一个节点去访问,这样所花的时候就比较多了。(顺序表可以弥补这缺点,但插入和删除就非常耗性能)单链表...