zoukankan      html  css  js  c++  java
  • 重温数据结构——(2)

    线性表

    线性表是最简单且最常用的一种数据结构。下面将 介绍它的概念、存储方法和基本运算:

    线性表的基本概念:

        若至少含有一个结点,则除了起始结点有且仅有一个前趋结点;除了终端结点其他结点有且仅有一个后继结点。

    基本运算:

        通过以下一些基本运算来实现一些特定操作,或者实现一些实际问题:

        1.初始化InitList,建立一个空表sq

        2.求线性表的长度

        3.求线性表中第i个元素GetElem(sq,i)

        4.按值查找Locate(sq,x)

        5.插入元素InsElem(sq,x,i)

        6.删除元素DelElem(sq,i)

        7.输出元素值DispList(sq)

    储存结构:

    顺序表

    特点:逻辑结构中相邻的结点在存储结构中仍然相邻

    定义如下:

    #define  MAXSIZE 100

    typedef struct

    {

        ElemType data[MAXSIZE];//存放数据域

        int len;//当前线性表长度

    } Sqlist;

    优点:用一维数组实现,空间利用率高;能随机存取

    缺点:操作不方便

    单链表

    特点:在结点中使用指针来串联成线性表,使得逻辑上相邻的结点,在物理结构上可以不相邻

    定义如下:

    typedef struct node

    {

        ElemType data;//数据域

        struct node *next;//指针域,指向下一个相邻节点

    } Slink;

    优点:物理结构上灵活,操作方便;查找后继结点方便

    缺点:不可随机存取;查找前趋结点比较困难

    循环单链表

    特点:与单链表相同,只是最后一个结点的指针域不为空,而是指向头结点,从而构成一个环

    双链表

    特点,与单链表相比,多了一个前趋指针

    定义如下:

    typedef struct node

    {

        ElemType data;//数据域

        struct node *prior,*next;//分别指向前趋结点和后继结点的指针

    } Dlink;

    优点:保持了单链表的优势之后,又使查找前趋结点变的方便了;

    缺点:需要额外的指针域,空间利用率降低;

    循环双链表

    特点:保持双链表的基础上,是尾结点与头结点相连

    (待续...)

  • 相关阅读:
    .Net常见面试题整理(一)——值类型和引用类型
    c#字符串常见操作
    sealed,new,virtual,abstract与override
    c#好的程序员必须掌握的编码习惯
    c#区分传值调用 传引用调用。
    C# const和readonly的区别
    .Net常见面试题整理(二)——装箱和拆箱
    C#Equals()和运算符==的区别
    private,protected,public和internal的区别
    2013应届毕业生“数码视讯”校招应聘总结
  • 原文地址:https://www.cnblogs.com/p2liu/p/6048778.html
Copyright © 2011-2022 走看看