小蚂蚁学习数据结构(3)——线性结构——线性表的链式表示和实现(上)

    经过上篇对线性表的顺序表示和实现能够知道,在顺序存储结构的线性表中对某个元素的插入和删除,其时间主要耗费在移动元素上,而移动元素的个数取决于插入和删除元素的位置。算法

    这句话我是在书上抄的    ~~( ﹁ ﹁ ) ~~~函数

    本节咱们将讨论线性表的另外一种表示方法——链式存储结构,因为它不要求逻辑上相邻的元素在物理位置上也相邻,所以它没有顺序存储结构所具备的弱点,但同时也失去了顺序表可随机存取的优势。spa

    这句话也我是在书上抄的    ┗( T﹏T )┛.net

链表是 树和图 的基础,很是重要。指针

typedef  为数据类型起个别名blog

格式: 排序

typedef int allen;ci

typedef struct Studen{get

}xiaoai;博客

原名和别名均可以使用

typedef struct Student

{

    int sid;

    ...

}* PST;    // 等价于struct Student *    类型

typedef stuct Student

{

    ......

}* PSTU,STU;

// 等价于 STU 表明了 stuct Student,PSTU 表明了 stuct Student *

离散存储

    定义:

        n个节点离散分配

        彼此经过指针相连

        每一个节点只有一个前驱节点,每一个节点只有一个后续节点

        首节点没有前驱节点,尾节点没有后续节点

        专业术语:

            首节点:第一个有效的节点

            尾节点:最后一个有效节点

            头节点:第一个有效节点以前的那个节点,头节点并不存放有效数据

                加头节点的目的是为了方便对链表操做

                头结点的数据类型和首节点类型同样。

            头指针:指向头节点的指针变量

            尾指针:指向尾节点的指针

        若是但愿经过一个函数对链表进行处理,至少须要接收链表的哪些参数?

            只须要一个参数,就是头指针,经过头指针能够推算出链表的其余全部信息

        第17讲 完

    分类:

        单链表:只能有一个指针域,指向后一个节点

        双链表:每个节点有两个指针域

        循环链表:能经过任何一个节点找到其余全部的节点,尾节点指向头节点

        非循环链表:

    须要实现的算法:

        遍历:把全部的元素找到

        查找:

            清空

            销毁

            求长度

            排序

            插入节点

            删除节点

    代码今天尚未写完,明天再写吧。

    立刻就要2016年了,但愿在新的一年里,技术水平可以更上一层楼,生活上简单开心就好。

    嗯,就这样吧    \(≧▽≦)/


学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog