zoukankan      html  css  js  c++  java
  • 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):循环链表
  • 相关阅读:
    使用.NET程序操作已打开的excel文件
    Ruby 加密(md5,sha1,base64)
    ThinkPad机型Hotkey影响QQ停靠在桌面边缘时自动隐藏功能
    IE6 下 的 a:hover
    下载 针式个人知识库管理软件 V9.08 版
    从智能手机App来看C/S和B/S的区别在哪?(Web的技术本质)
    分库分表的设计思路让大系统变简单
    会员充值消费管理系统
    解决WebDev.Webserver4(.net 4) 只能用于本机调试的问题
    WebApplication 完全编译即aspx不可修改,不包括设计内容的方法
  • 原文地址:https://www.cnblogs.com/BlueWoods/p/1573199.html
Copyright © 2011-2022 走看看