常用資料結構

2021-09-03 01:59:12 字數 3910 閱讀 4831

function delete_array_element($arr,$pos)

for($i=$pos-1;$i<$length-1;$i++)

array_pop($arr);

return $arr;

}$pos = 3;

echo "

除第位置上的元素後:";

echo implode(' ',delete_array_element($arr,$pos))."

";

<?php

header("content-type:text/html;charset=utf-8");

class lnode

}class singlelinkedlist

//返回單鏈表長度

public static function getlength()

public function getisempty()

else

}public function clearsll()

self::$mlength=0;}}

public function getheadcreatesll($sarr)

}else

return true;

}public function gettailcreatesll($sarr)

}else

}public function getelemforpos($i)

return $p->melem;

}else

}public function getelemi***ist($value)

if($p->melem==value)

else}}

public function getelemposition($value)

if($p->melem==$value)

else}}

/*單鏈表的插入操作

**@param int $i 插入元素的位序,即在什麼位置插入新的元素,從1開始

*@param mixed $e 插入的新的元素值

*@return boolean 插入成功返回true,失敗返回false

*/public function getinsertelem($i,$e)

$q=new lnode;

$q->melem=$e;

$q->mnext=$p->mnext;

$p->mnext=$q;

self::$mlength++;

return true;

}/**

*刪除單鏈中第$i個元素

*@param int $i 元素位序

*@return boolean 刪除成功返回true,失敗返回false

*/public function getdeleteelem($i)

else

$q=$p->mnext;

$p->mnext=$q->mnext;

unset($q);

self::$mlength--;

return true;}}

public function getallelem()

if($p->melem)

$all=$p->melem;

return $all;}}

public function getelemunique()

else

}//處理最後乙個元素

if(strcmp($p->melem,$q->melem)===0)

$p=$p->mnext;

}//end of while

} }}

///test//

$node=new singlelinkedlist;

$arr=array('gbw','michael','php','js');

//$node->getheadcreatesll($arr);

//print_r($node->getallelem());

$node->gettailcreatesll($arr);

echo $node->getelemforpos(2);

$pos=$node->getelemposition('gbw');

echo $pos;

$node->getdeleteelem($pos);

$node->getinsertelem(1,'gbw2');

print_r($node->getallelem());

/**

* class stack

* 用php模擬順序棧的基本操作

*/class stack

$this->top++;

$this->stack[$this->top] = $elem;

} //出棧

public function pop()

$elem = $this->stack[$this->top];

unset($this->stack[$this->top]);

$this->top--;

return $elem;

} //列印棧

public function show()

echo "

"; }}

$stack = new stack();

$stack->push(3);

$stack->push(5);

$stack->push(8);

$stack->push(7);

$stack->push(9);

$stack->push(2);

$stack->show();

$stack->pop();

$stack->pop();

$stack->pop();

$stack->show();

/**

* class deque

* 使用php實現雙向佇列

*/class deque

public function addlast($item)

public function removefirst()

public function removelast()

public function show()

echo "

"; }

}$deque = new deque();

$deque->addfirst(2);

$deque->addlast(3);

$deque->addlast(4);

$deque->addfirst(5);

$deque->show();

//方法一

function joseph_ring($n,$m)

}return $arr[0];

}//方法二

function joseph_ring2($n,$m)

return $r + 1;

}echo "

".joseph_ring(60,5)."

"; echo "

".joseph_ring2(60,5)."

";

<?php

class test implements iterator

public function current()

public function key()

public function next()

public function valid()

} //測試

$t=new test;

foreach($t as $k=>$v)

?>

常用資料結構

文章參考 資料結構 c語言版 嚴蔚敏 線性表 有頭有尾,中間節點有前驅有後繼 定義 一組連續的儲存單元依次儲存線性表的資料元素。定長順序表 typedef struct sqlist psqlist 不定長順序表 typedef struct dsqlist dsqlist,pdsqlist 單鏈表...

常用資料結構

基本資料結構 邏輯 集合,線性結構,樹形結構,圖形結構 基本資料結構 物理 順序,鏈式,索引,雜湊。陣列,棧,鍊錶,圖,雜湊表,對列,樹,堆 陣列 在記憶體中連續儲存多個元素的結構,在記憶體中的分配是連續,通過陣列下標運算元組元素 建立陣列 int a int a new int 3 int a n...

常用資料結構

前言 常用的資料結構主要包括陣列 鍊錶 串 棧 佇列 樹 圖 目錄 一 陣列 二 鍊錶 三 棧四 佇列 五 樹六 圖 總結 實現 int data 100 int arr int malloc sizeof int 100 實現 參考 實現 實現 include include include de...