>백엔드 개발 >PHP 튜토리얼 >PHP로 구현한 스택 데이터 구조 예시 [스택에 밀어넣기, 스택 밖으로 튀어나오기, 스택 트래버스]_php 스킬

PHP로 구현한 스택 데이터 구조 예시 [스택에 밀어넣기, 스택 밖으로 튀어나오기, 스택 트래버스]_php 스킬

韦小宝
韦小宝원래의
2017-12-15 10:20:131602검색

이 글에서는 PHP에서 구현한 스택 데이터 구조를 주로 소개하고, PHP의 예제 형식을 결합하여 php의 스택 정의와 스택 푸시, 팝핑, 순회 등 관련 작업 기술을 분석합니다. 필요한 경우 이 기사를 참조하세요. 이 기사에서는 PHP로 구현된 스택 데이터 구조를 예제로 설명합니다. 참조를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

php 객체 지향 아이디어를 사용하여 스택의 속성에는 상단, 최대 저장 수 및 저장 컨테이너가 포함됩니다(여기에서는 php 배열 사용).

코드는 다음과 같습니다: 스택을 밀어넣고, 터뜨리고, 순회하는 여러 가지 방법이 구현됩니다:


<?php
class Stack{
  const MAXSIZE = 4;// 栈最大容量
  private $top = -1;
  private $stack = array();// 利用数组存储数据
  public function construct(){
    $this->stack = array();
  }
  // 入栈
  public function push($ele){
    if ($this->top >= self::MAXSIZE-1){
      echo &#39;stack is full...&#39;;
      return false;
    }
    $this->stack[++$this->top] = $ele;// 此处必须是++i,先计算再使用
  }
  // 出栈,返回出栈元素
  public function pop(){
    if ($this->top == -1){
      echo &#39;stack is empty...&#39;;
      return false;
    }
    $ele = $this->stack[$this->top];
    unset($this->stack[$this->top--]);// 此处必须是i--,先使用再计算(注意出栈和入栈的区别)
    return $ele;
  }
  // 遍历栈
  public function show(){
    if ($this->top == -1){
      echo &#39;stack is empty...&#39;;
      return false;
    }
    for($i=$this->top; $i>-1; $i--){
      echo $this->stack[$i].&#39;<br/>&#39;;
    }
  }
}
$stack = new Stack;
$stack->push(1);
$stack->push(2);
$stack->push(3);
$stack->push(4);
//print_r($stack);
$stack->show();
$a = $stack->pop();
$a = $stack->pop();
$a = $stack->pop();
$stack->show();


실행 결과:

4
3
2
1
1

이것이 이 문서의 모든 내용입니다. 모두에게 도움이 됩니다! !

관련 권장 사항:

PHP 단일 파일 및 다중 파일 업로드 분석의 예

php의 클래스 및 개체에 대한 자세한 예

php에서 생성된 품질이 낮은 썸네일에 대한 솔루션


위 내용은 PHP로 구현한 스택 데이터 구조 예시 [스택에 밀어넣기, 스택 밖으로 튀어나오기, 스택 트래버스]_php 스킬의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.