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

    本人学习笔记,仅供自己查阅


     线性表 是最常用且最简单的一种数据结构。

    线性表的顺序存储结构的特点:逻辑关系上相邻的两个元素在物理位置上也相邻。查询方便,插入或删除操作时,需移动大量元素。

    线性表的链式存储结构的特点:不要求逻辑上相邻的元素在物理位置上也相邻。插入或删除操作方便,但查询速度慢,不能随机存取。


    链式存储结构:数据域和指针域

    数据域:存储数据元素信息的域;

    指针域:存储直接后继存储位置的域,指针是 数据元素之间的逻辑关系的映像。

    循环链表、双向链表、静态链表


    栈:限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有特殊含义,称为栈顶(top),相应地,表头端称为栈底(bottom)。

    栈又称 后进先出(last in first out)的线性表(简称LIFO结构)

    栈的应用举例:

    数制转换、括号匹配的检验、行编辑程序、迷宫求解、表达式求解(操作数栈、运算符栈)、栈与递归的实现(Hanoi塔的问题)


    队列

    队列:只允许在表的一端进行插入,而在另一端删除元素。是一种 先进先出(first in first out,缩写为FIFO)的线性表。

    在队列中,允许插入的一端叫做队尾(rear),允许删除的一端称为对头(front)。


    串(字符串)

    计算机上的非数值处理的对象基本上是字符串数据。在不同类型的应用中,所处理的字符串具有不同的特点,要有效地实现字符串的处理,就必须根据具体情况使用合适的存储结构。

    值得一提的是,串值必须用一对单引号括起来,但单引号本身不属于串,它的作用只是为了避免与变量名或数的常量混淆而已。

    串的逻辑结结构和线性表极为相似,区别仅在于字符集

    定长顺序存储表示

    堆分配存储表示:仍以一组地址连续的存储单元存放串值字符序列,但它们的存储空间是在程序执行过程中动态分配而得的。在C语言中,存在一个称之为“堆”的自由存储区。

    块链存储表示:链表方式存储串值

    串的模式匹配算法:朴素模式匹配、KMP算法

  • 相关阅读:
    [十七]SpringBoot 之 使用自定义的properties
    【转】手摸手,带你用vue撸后台 系列三(实战篇)
    【转】手摸手,带你用vue撸后台 系列四(vueAdmin 一个极简的后台基础模板)
    【转】手摸手,带你用vue撸后台 系列二(登录权限篇)
    【转】手摸手,带你用vue撸后台 系列一
    【16】vuex2.0 之 getter
    【15】vuex2.0 之 modules
    【14】vuex2.0 之 mutation 和 action
    【13】vuex2.0 之 state
    【12】vue-router 之路由重定向
  • 原文地址:https://www.cnblogs.com/barbarian/p/8674905.html
Copyright © 2011-2022 走看看