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):循环链表
  • 相关阅读:
    asp.net 2.0 国际化 动态切换语言
    SKU、UPC、EAN和ISBN
    NCalc:处理数学运算的好帮手
    yaf 论坛安装
    Afterlogic xmail 邮局软件不能收email 设置
    要围着中心来做事
    保证Winform程序只有一个实例在运行
    可视热敏读写卡开发
    jQuery CSS 效果
    代碼小片斷
  • 原文地址:https://www.cnblogs.com/BlueWoods/p/1573199.html
Copyright © 2011-2022 走看看