码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【★★★★★ 第2章 线性表总结笔记 2022 9.12】


    线性表 笔记记录

    • 1.线性表的定义和基本操作
      • 1.1 线性表的顺序表示
        • 线性表的插入
        • 线性表的删除
        • 线性表的查找

    1.线性表的定义和基本操作

    线性表:具有相同数据类型的n个数据元素的有限序列;
    线性表的逻辑特性:除第一个元素外,每一个元素都有且仅有一个直接前驱,除最后一个元素外每个元素都有且仅有一个直接后继;
    线性表的特点:

    1. 表中元素个数有限
    2. 表中元素具有逻辑上的顺序性,表中元素有先后次序
    3. 表中元素都是数据元素,每个元素都是单个元素
    4. 表中元素的数据类型相同,也就是说 占有相同大小的存储空间
      线性表为逻辑结构,表示元素之间一对一的相邻关系。
      顺序表和链表是指存储结构,两者是不同层面的概念;
      做题总结:
    • 邻接表是存储结构
    • 线性表要是相同类型 有限序列!

    1.1 线性表的顺序表示

    线性表的顺序存储称为顺序表; 顺序表用一组地址连续的存储单元依次存储线性表中的数据元素; 使得逻辑上相邻的元素在物理上也相邻;特点就是逻辑顺序与物理顺序相同;随机存取,O(1)的时间内找到指定元素

    设第一个元素a0的存储位置为loc(a0) 每个元素占用k个存储单元,则任意个元素ai的内存地址为loc(ai)=loc(a0)+i*k

    线性表的插入

    #define ERROR 0
    #define OK 1
    int  Insert(SeqList *L,int i,int x){
      int j;
      if(i<-1||i>L->n-1)
      return ERROR;
      if(L->n==L->MaxSize)
      return ERROR;
      for(j=L->n-1;j>i;j--)
       L->data[j+1]=L->data[j];
       L->data[i+1]=x;
       L->n++;
       return OK;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    插入的最好情况 在表尾不用移动元素,O(1)
    最坏情况:表头 O(n)
    平均情况:插入一个元素 需要移动 n-i-1个元素,在任意位置插入时相同的概率,即pi=1/(n+1); 平均次数为 求和:【1/(n+1) *(n-i-1)】=n/2

    线性表的删除

    int Delete(SeqList *L,int i){
       int j;
       if(i<0||i>L->n-1)
       return ERROR;
       if(!L->n)
       return ERROR;
       for(j=i+1;j<L->n;j++ )
       L->data[j-1]=L->data[j];
       L->n--;
       return OK;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    删除最好情况:表尾 O(1)
    最差情况:表头 o(n)
    平均情况:(n-1)/2

    线性表的查找

    Status Find(SeqList L,int i,ElemType *x){
      if(i<0||i>L.n-1)
      return ERROR;
      *x=L.element[i];
      return OK;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    查找的时间复杂度为O(n)
    做题总结:

  • 相关阅读:
    定制开发APP 需要注意什么?
    加密磁盘密钥设置方案浅析 — TKS1
    掘光者网课题库接口
    电脑上使用的备忘记事软件哪一款好用点?
    pdf文档打不开是怎么回事?
    dede:arclist标签判断有缩略图则显示否则不显示或显示其他自定义图片
    【云原生 | Kubernetes 系列】---Prometheus 监控Haproxy(Haproxy-exporter)
    【开发篇】二十、SpringBoot整合RocketMQ
    【附源码】Python计算机毕业设计体育场馆预定网站
    Node.js之Buffer(缓冲器)
  • 原文地址:https://blog.csdn.net/qq_43520227/article/details/126819106
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号