zoukankan      html  css  js  c++  java
  • 大话数据结构 -04-1 栈

    一、栈

    1. 定义

    栈元素具有线性关系,即前驱后继关系。是一种特殊的线性表。

    栈的插入操作,叫作进栈,也称压栈、入栈。  栈的删除操作,叫做出栈,也有的叫作弹栈。

    注意:最先进栈的元素不一定最后出栈。如三个整型元素1,2,3。

    2. 抽象数据类型

    同线性表一样,有顺序存储与链式存储。

    3. 栈的顺序存储结构

     

    「1」进栈(判断栈是否满)时间复杂读为O(1)

    「2」出栈(判断栈是否为空时间复杂读为O(1)

    「3」两栈共享空间

     

    空间结构

    push方法:(除了要插入的元素值参数外,还有一个判断书stack1还是stack2的栈号参数stackNumber

    pop方法:(判断栈是否非空)

    4. 栈的链式存储结构

    栈顶放在单链表的头部头指针此时为top指针

    链栈的结构:

    定义了结点类型,及栈的top指针和栈的元素数count。(放在两个结构里!!!

    进栈操作:

     

    出栈操作:

    链栈的进栈与出栈时间复杂度均为O(1)

    如果栈的使用过程中元素变化不可预料,有时很小,有时非常大,那么最好使用链栈。反之,如果它的变化在可控范围内,建议使用顺序栈会更好一些。

  • 相关阅读:
    安装redis
    memcached复制-repcached
    memcached一致性哈希及php客户端实现
    安装php
    安装mysql
    安装apache
    putty配色方案
    virtualbox下centos实现主宿互访
    安装memcached
    linux网络、性能相关命令
  • 原文地址:https://www.cnblogs.com/GuoXinxin/p/10008278.html
Copyright © 2011-2022 走看看