zoukankan      html  css  js  c++  java
  • 数据结构与算法绪论学习 Day2 _线性表

    线性表是由n(n>=0)个相同的数据元素构成的有限序列

    线性表分为

    顺序表:在内存中用一块地址连续的空间依次存放线性表的元素 最常见的就是数组

    顺序表的存、读数据不管在哪个位置,时间复杂度都是O(1),而在插入和删除元素的时候,时间复杂度都是O(n)

    所以线性表比较适合元素个数稳定,高存取、低删减的应用

    优点:

    1. 无需为表中的元素之间的逻辑关系增加额外的存储空间
    2. 可以快速的存取表中仍以位置的元素

    缺点:

    1. 插入和删除操作需要移动大量的元素
    2. 当线性表长度变化较大的时候,难以确定存储空间的容量
    3. 容易造成存储空间的碎片

    链表:散列存储

    单链表:

      

     在内存中的任何未被占用的随意单位中存放元素

     存储自身Node + 后续节点的存储地址(指针)  组成

        public class Node
        {
            /// <summary>
            /// 当前节点数据域
            /// </summary>
            Object data;
            /// <summary>
            /// 指针域
            /// </summary>
            Node next;
        }

    第一个节点的存储位置叫做头指针

    头结点:为了方便操作第一个元素,使其与其他元素的操作一致,一般无意义,但是可以用来存放链表的长度(非必要元素)

    其中最后一个结点的后驱结点是null

    双向链表:

     由 前驱结点+Node+后驱结点 组成,其中最后一个结点的后区节点是null, 在C#中常见的双向链表数据结构是linkedlist

    循环链表

     

     最后一个结点的后区节点不是null

  • 相关阅读:
    test6
    test4
    test3
    20165321 2017-2018-2《Java程序设计》课程总结
    20165321 实验五 网络编程与安全-2
    20165321 实验五 网络编程与安全
    实验四 Android开发基础
    20165321 实验三 敏捷开发与XP实践
    《深入理解计算机系统》第三章 程序的机器级表示学习
    《文献管理与信息分析》第二章
  • 原文地址:https://www.cnblogs.com/yuchenghao/p/12805354.html
Copyright © 2011-2022 走看看