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

  • 相关阅读:
    ultraiso:usb-hdd+ v2
    ntfs格式uefi启动u盘
    M.2、U.2谁更好?主流硬盘接口大扫盲
    高清(200万像素)多灯红外防水枪型网络摄像机 DH-IPC-HFW5200-IRA
    佳能 imageclass mf40120
    hotswapagent——热更新代码而无需重启生产环境
    S5700&S5710 产品文档 : 配置
    hp 88a加粉
    传真机色带安装
    Idea下Android的安装与配置 (2019.11更新)
  • 原文地址:https://www.cnblogs.com/yuchenghao/p/12805354.html
Copyright © 2011-2022 走看看