码农知识堂 - 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)
    做题总结:

  • 相关阅读:
    Vuex的使用
    【Jenkins】关于账号,证书验证的设置问题
    一码跑遍众多小程序,饿了么开源自研多端框架 MorJS
    Educational Codeforces Round 156 (Rated for Div. 2)
    RCTF 2024 WEB wp
    【学生网页设计作业源码】基于HTML+CSS+JavaScript简单的大学生书店(13个页面) 二手书店电子商务网站模板源码
    【详细学习SpringBoot核心源码之SpringApplication构造器&Run方法源码详细流程-4】
    【转载】 Bytedance火山引擎智能拥塞控制算法 VICC
    集合—Set接口实现类-LinkedHashSet
    Excel中的subtotal函数
  • 原文地址:https://blog.csdn.net/qq_43520227/article/details/126819106
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号