zoukankan      html  css  js  c++  java
  • 数据结构小结(线性表)

    一.思维导图



    二.一些重要概念

    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个字符与主串中相应字符“失配”时,在模式中需重新和主串中该字符进行比较的字符位置。

    三.疑难问题及解决方案

  • 相关阅读:
    转:5个AJAX Loading动画图标生成器
    小练习:图片轮播jQuery版
    找不同,在一定范围内找出不同数最小的数组。
    一个Hibernate的Hello World, 基于Hibernate 4.0
    队列的操作, 计算要出队某个数需要移动的距离.
    使用反射操作私有(Private)方法和属性
    求由色子组成的立方体的5个可见面(底部不算)中所有数字最小之和.
    动态代理的简单实例.
    设计模式:Java的代理模式.
    Java的反射 基础+简单复制对象实例
  • 原文地址:https://www.cnblogs.com/599-/p/12589293.html
Copyright © 2011-2022 走看看