栈——链式存储结构(PHP)

<?php
/**
 * @desc
 * 		栈的定义:仅在表尾(栈顶)进行插入和删除操作的线性表。元素具有相同类型和后继关系
 * 				栈的插入叫进栈,压栈,入栈  push
 * 				栈的删除叫出栈,弹栈		 pop
 * 
 * 		栈的链式存储结构。		
 * 		栈不存在线性表插入和删除时需要大量移动元素,因为他只准栈顶进出	
 * 
 * 		顺序与链,他们在时间复杂度上都一样,都为O(1).
 * 		顺序在C语言中,需要事先确定一个固定的长度,而在PHP是弱类型语言,数组长度不需要指定,所以不需要事先设定。
 * 		链则要求每个元素都有指针域,增加了内存开销,但对于长度无限制。
 * 		
 * @author  ranping
 */
class LinkStack {
	public $top;
	public $count;
	
	public function initStack(){}
	public function destoryStack(){}
	public function clearStack(){}
	public function stackEmpty(){
		return $this->count == 0;
	}
	public function getTop(){}
		
	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->stackEmpty()) {
			return false;
		}
		$elem = $this->top->data;
		$top = $this->top;
		$this->top = $this->top->next;
		$this->count--;
		unset($top);
		return $elem;
	}
	
	public function stackLength(){
		
	}
}

class StackNode {
	public $data;
	public $next;
}

转载于:https://my.oschina.net/ringran/blog/73964

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值