数据结构小结(线性表)

一.思维导图



二.一些重要概念

1.绪论

  • 数据的存储包含两个方向内容:数据元素;数据元素之间的逻辑关系;
  • 算法效率分析:
    -算法的执行时间可由其基本运算的执行次数来计量;
    -T(n)最高阶常用阶:常数阶O(1);线性阶O(n);平方阶O(n2);立方阶O(n3);对数阶O(log2n);

2.线性表-顺序表

  • 链式结构
    -特点:线性表中的数据元素存放在一组地址任意的存储节点,节点之间用“链”进行连接;
    -结构:节点=数据元素+指针;数据元素:存放数据;指针:存放该节点下一个元素的存储位置;
    -存储密度=数据所占空间/节点所占空间(数据占用空间+指针占用空间)==>链表的存储密度不高,利用率低;
  • 双链表

    -特点:1.从任一节点出发可以快速找到其前驱节点和后继节点;2.从任一节点出发可以访问其它节点
    -双链表和单链表的区别,其实无论是从构建,删除,插入等操作,对next指针域的操作是不变的,多的是对前驱节点的操作
    -插入:

    -删除:
  • 单链表
  • 有序表
    -所有元素以递增或递减方式有序排列;

3.栈和队列

  • 特点:从数据元素的逻辑关系看->为线性表;从操作方式和种类看->不同于线性表,栈与队列是操作受限的线性表;
  • 递归特点:自我调用;必须有递归出口;
  • 循环队列:
    -对空条件:front=rear;
    -队满条件:(rear+1)%MaxSize=front
    -进队条件:rear=(rear+1)%MaxSiaze;
    -出队条件:front=(front+1)%MaxSize;
    -rear的位置不一定比 front指针大 ,所以要算队列中的元素个数时是 (rear-front)%MaxSize; 那如果知道元素的个数,要只要尾指针rear的位置,则是rear=(front+cout)%MaxSize.

4.串

  • KMP算法
    -特点:主串不需要回溯i指针;将模式串向右滑动尽可能远的一段
    -next[j]函数:表明当模式中第j个字符与主串中相应字符“失配”时,在模式中需重新和主串中该字符进行比较的字符位置。

三.疑难问题及解决方案

posted @ 2020-03-28 21:36  黎里  阅读(178)  评论(0编辑  收藏  举报