• C# 线性表的实现


          线性表的基本操作定义如下:
          
    线性表的基本操作
          (1):顺序表的定义:指内存中用一块连续的空间依次存储线性表的每个元素。因为在C#中数组在内存中占用的存储空间就是一组连续的存储区域,具有随机存储的特点,逻辑上相邻的数据元素物理上也相邻。代码实现如下:
          
    顺序表的实现
          注释:maxSize表示顺序表的容量,data存储顺序表的元素,last指示最后一个元素的位置。
          a.插入操作:判断顺序表是否已满和插入的位置是否正确,表满或者插入的顺序不正确不能插入;如果表满或者插入的位置的正确,咋将a1~~ai依次向后移动,为新的数据元素空出位置,用循环来实现;将新的元素插入到空出的第i位置上;修改last,使它指向顺序表的最后一个元素。插入的时间复杂度O(N)。
          b.删除元素:判断顺序表是否为空和删除的位置是否合理,表空或删除的位置不合理,不能删除;如果表不空和删除的位置正确,则将a1~ai依次向前移动,用循环来实现;修改last指针,使它指向顺序表的最后一个元素。时间复杂度为O(N)。
          (2):单链表是指用一组任意的存储单元来存储线性表中的数据元素。
            
    单链表节点的定义
          
    单链表的实现
          注释:线性表的顺序存储和链式存储各有优缺点,线性表如何存储取决于使用场合。如果不需要经常在线性表中进行插入和删除,那么线性表适合顺序存储;如果线性表需要经常插入和删除,而不经常查找,则应链式存储。
           a.插入操作:前插操作和后插操作,时间复杂度:O(N)。
           b. 删除操作,时间复杂度O(N)
          (3):单链表的创建
                1):在单链表的头部插入节点建立
                2):在单链表的尾部插入节点建立
         (4):双链表
         (5):循环链表
  • 相关阅读:
    klinux下JDK的安装和卸载
    MySQL设置定时任务执行事务
    Burp Suite Intruder的4种攻击类型
    Intel重大漏洞之Meltdown和Spectre
    你的Mac还安全吗
    渗透技巧——Windows系统的帐户隐藏
    Office--CVE-2017-11882【远程代码执行】
    Kali下安装Java环境
    自动化渗透测试工具(Cobalt Strike)3.1 最新破解版
    跟着安全牛大表哥学渗透
  • 原文地址:https://www.cnblogs.com/BlueWoods/p/1573199.html
Copyright © 2020-2023  润新知