顺序表知识点梳理

  • 线性表的类型定义
    • 相同数据类型
    • n个数据元素
    • 有限序列
    • L=(a1,……an)
    • 除第一元素外,每个元素有且仅有一个直接前驱
    • 直接后继同理
  • 线性表的基础操作
    • InitList(&L):初始化表。
    • Length(L):求表长。
    • LocateElem(L,e):按值查找操作。
    • GetElem(L,i):按位查找操作。
    • ListInsert(&L,i,e):插入操作
    • ListDelete(&L,i,&e):删除操作
    • PrintList(L):输出操作
    • Empty(L):判空
    • DestroyList(&L):销毁操作
  • 顺序表结构
    • 线性表的顺序存储
    • 逻辑相邻,物理位置相邻
  • 顺序表特点
    • 随机存取(通过首地址和元素序号可在时间O(1)内找到指定的元素)
    • 存储密度高,每个节点只存储数据元素
    • 插入和删除操作需移动大量元素
  • 顺序表的实现
    • 插入操作
    • bool ListInsert(SqList &L,int i,ElemType e){
          if(i<1||i>L.length+1)
              return false;
          for(int j=L.length;j>=i;j--)
              L.data[j]=L.data[j-1];
          L.data[i-1]=e;
          L.length++;
          return true;
      }
    • 删除操作
    • bool ListDelete(SqList &L,int i,ElemType &e){
          if(i<1||i>L.length)
              return false
          e=L.data[i-1];
          for(int j=i;j<L.length;j++)
              L.data[j-1]=L.data[j];
          L.length--;
          return true;
      }

    • 按值查找操作
    • int LocateElem(SqList L,ElemType e){
          int i;
          for(i=0;i<L.length;i++)
              if(L.data[i]==e)
                  return i+1;
          return 0;
      }

    •  按位查找操作

    • int GetElem(SqList L,int i){
          if(i<1||i>L.length)
              return 0;
          return L.data[i-1];
      }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值