zoukankan      html  css  js  c++  java
  • 《数据结构

    一:链式存储 和 顺序结构 对比?

      - 栈的 顺序结构 与 链结构,他们在时间复杂度上都一样,都为O(1).

      - 如果栈的数量可预知,则使用顺序栈,否则,则使用链栈

      - 链栈 要求每个元素都有指针域,增加了内存开销,但对于长度无限制。

    二:栈-链式结构

    <?php
    /**  
     * 
     * 栈的 顺序结构 与 链结构,他们在时间复杂度上都一样,都为O(1).
     * 如果栈的数量可预知,则使用顺序栈,否则,则使用链栈
     * 链栈 要求每个元素都有指针域,增加了内存开销,但对于长度无限制。
     */
    class LinkStack
    {
        public $top;   // 栈顶位置
        public $count; // 栈长度
            
        public function push($elem)
        {
            $node       = new StackNode();
            $node->data = $elem;      // 数据
            $node->next = $this->top; // 下一个结点指针
            $this->top  = $node;      // 当前栈顶
            $this->count++;           // 栈长度变化
            return true;
        }
    
        public function pop()
        {
            if($this->count == 0) return false; // 空栈没有数据,无法出栈
            $elem = $this->top->data; // 获取栈顶数据,出栈
            $top  = $this->top;
            $this->top = $this->top->next;
            $this->count--;
            unset($top);
            return $elem;
        }
    }
    
    class StackNode {
        public $data;
        public $next;
    }
    
    $stack = new LinkStack();
    $stack->push(1);
    $stack->push(2);
    // $stack->push(3);
    // $stack->push(4);
    // $stack->push(5);
    
    print_r($stack->pop());
    print_r($stack->pop());
    print_r($stack->pop());
    // var_dump($stack);
    // var_dump($stack->top->next);
  • 相关阅读:
    【LOJ】#2184. 「SDOI2015」星际战争
    【LOJ】#2181. 「SDOI2015」排序
    求解任意多边形的面积(平面内)
    认识基本的mfc控件
    .net学习之路——调试程序
    小白详细讲解快速幂--杭电oj2035-A^B
    模拟停车场问题
    初识mfc
    2034-人见人爱A-B(c++实现)
    3032-杨辉三角
  • 原文地址:https://www.cnblogs.com/25-lH/p/10431229.html
Copyright © 2011-2022 走看看