メニュー
データ構造の基礎知識を深めるため(試験対策のため)、基本的なアルゴリズムを練習するため、そしてもちろん将来的にPHPを使ってメニューを作る際にトラブルを避けるために、長い間PHPを使っていませんでした。
アルゴリズム: データ構造における最も基本的なツリーとバイナリ ツリー間の変換
それを見てみましょう!アルゴリズムに慣れるためだけなので、特別なテストは行われておらず、データベース操作はクラスにカプセル化されていません。必要な場合は、自分で変更するか、私に連絡してください。
データは次のように保存する必要があります:
id,topic,child_l,parent,child_r,content
ファイル名:
show.inc.php
コード:
============= = =====================================
クラス ショー{
var $ items ;
var $the_stack;
var $count=0;
function find($l_value) {
for($j=1;$jitems["info_all"];$j++ ){
}
) {
($this->items[" l_node][$i]"]!=-1))
";
echo "";
echo "pages_0($this->items["d_id ][$i]"])."?d_id=".$this- >items["d_id][$i]"]."" target="rightFrame">".$this->items[ "node_value][$i]"]."";
echo " items["d_id][$i]"] ." target = "rightFrame"> ;
echo "
i]"]!=0)&&($this->items["l_node][ $ i] "] if(($this->items["l_node][$i]"]==-1)&&($this->items["r_node][$i]"]==-1)) {
$i=$this->find($this->items["f_node][$i]"]);
if(($this->items["r_node][$i]"]== $current_node)) {//彼の親は正しいポイントを使用します
$this->items["r_node][$i]"]=-1;
if(($this->items["l_ノード][ $ i] "] == $ current_node))){//彼の親は左左point
$ this-> items [" l_node] [$ i] "] = -1;
}
$ this-> count = $this->count-2;
$this->m_l_r_list($i);
}//左の子と右の子が親ノードまで訪問されている場合
if(($this-& gt;アイテム["l_node][$i]"]!=-1)&&($this->items["r_node][$i]"]!=-1)) {
echo "
";";
for ($k=0;$kcount;$k++) { echo " ";}
echo "";
echo "items["d_id][$i]"]."" target="rightFrame">"。 $this->items["node_value][$i]"]."";
//echo $this->items["node_value][$i]"];
echo " < ;a href=addnode.php?id=".$this->items["d_id][$i]"]." target="rightFrame">追加 font>";
echo " items["d_id][$i]"].">Del";
echo "
echo "
$i=$this->find($this->items["l_node][$i]"]);//左側の子ノードにアクセスします
$this->count =$this->count+2;
$this->m_l_r_list($i);
}//左の子ノードと右の子ノードが訪問されていない場合
if(($this->items["l_node][$i]"]==-1)&&($this->items["r_node][$i]"]!=-1)) {
$i=$this->find($this->items["r_node][$i]"]);//visite right child node
$this->m_l_r_list($i);
}//if left child node have been visited and right child node have not been visited
}
if(($this->items["f_node][$i]"]!=0)&&($this->items["r_node][$i]"]==0)&&($this->items["l_node][$i]"]!=0))
{//if node only have left child
$current_node=$this->items["d_id][$i]"];
if($this->items["l_node][$i]"]!=-1) {
echo "
";";
for ($k=0;$kcount;$k++) { echo " ";}
echo "";
echo "items["d_id][$i]"]."\" target=\"rightFrame\">".$this->items["node_value][$i]"]."";
//echo $this->items["node_value][$i]"];
echo " items["d_id][$i]"]." target=\"rightFrame\">Add";
echo " items["d_id][$i]"].">Del";
echo "
echo "
$i=$this->find($this->items["l_node][$i]"]);//visite left child node
$this->count=$this->count+2;
$this->m_l_r_list($i);
exit;
}//if his left child node have not been visited
if($this->items["l_node][$i]"]==-1) {
echo "
$i=$this->find($this->items["f_node][$i]"]);
if(($this->items["r_node][$i] "]==$current_node)) {//彼の親は権利を使用します
$this->items["r_node][$i]"]=-1;
if(($this->items [ "l_node][$i]"]==$current_node)) {//彼の親は左の点を使用します
$this->items["l_node][$i]"]=-1;
$this-> count=$this->count-2;
}
$this->m_l_r_list($i);
exit;
}// 左の子ノードが訪問されている場合e、親ノードまで
}
if(($this->items["f_node][$i]"]!=0)&&($this->items["r_node][$i]"]!=0)&&($this ->items["l_node][$i]"]==0))
{//ノードに右側の子のみがある場合
$current_node=$this->items["d_id][$i]"];
$j=$this->find($this->items["f_node][$i]"]);
if($this->items["r_node][$i]"]!= -1) {
echo "
";";
for ($k=0;$kcount;$k++) { echo ";}
エコー"items["d_id][$i]"]."" target="rightFrame">".$this->items[ "node_value][$i]"]."";
//echo $this->items["node_value][$i]"];
echo " items["d_id][$i]"]." target="rightFrame">追加";
echo " items["d_id][$i]"].">Del";
echo "
$i=$this->find($this->items["r_node][$i]"]);//右側の子ノードにアクセスします
$this->m_l_r_list( $i);
exit;
}//右の子ノードが訪問されていない場合
if($this->items["r_node][$i]"]==-1) {
$i=$this->find($this->items["f_node][$i]"]);
if(($this->items["r_node][$i]"]==$current_node)) {//his parent use right point
$this->items["r_node][$i]"]=-1;
}
if(($this->items["l_node][$i]"]==$current_node)) {//his parent use left point
$this->items["l_node][$i]"]=-1;
$this->count=$this->count-2;
}
$this->m_l_r_list($i);
exit;
}//if his right child node have been visite,up to his parent node
}
if(($this->items["f_node][$i]"]!=0)&&($this->items["l_node][$i]"]==0)&&($this->items["r_node][$i]"]==0))
{//if this node haven't child node,print it and up to his parent
//node his parent left or right child have been visited
$current_node=$this->items["d_id][$i]"];
$j=$i;
$i=$this->find($this->items["f_node][$i]"]);//up to parent
//echo $this->items["l_node][$i]"];
if(($this->items["r_node][$i]"]==$current_node)) {//his parent use right point
echo "
";";
for ($k=0;$kcount;$k++) { echo " ";}
echo "items["d_id][$j]"]."\" target=\"rightFrame\">".$this->items["node_value][$j]"]."";
//echo $this->items["node_value][$j]"];
echo " items["d_id][$j]"]." target=\"rightFrame\">Add";
echo " items["d_id][$j]"].">Del";
echo "
echo "
$this->items["r_node][$i]"]=-1;
}
if(($this->items["l_node][$i]"]==$current_node)) {//his parent use left point
echo "
";";
for ($k=0;$kcount;$k++) { echo " ";}
echo "items["d_id][$j]"]."\" target=\"rightFrame\">".$this->items["node_value][$j]"]."";
//echo $this->items["node_value][$j]"];
echo " items["d_id][$j]"]." target=\"rightFrame\">Add";
echo " items["d_id][$j]"].">Del";
echo "
echo "
$this->items["l_node][$i]"]=-1;
$this->count=$this->count-2;
}
$this-> m_l_r_list($i);
exit;
}
}
function Pages_0($d_id){//
include("conn_db.php");
$Sql_Query="d_id=$d_id のノードページから * を選択" ;
$Query_Db=mysql_query($Sql_Query,$Connect);
$MyPage=mysql_fetch_array($Query_Db);
include("conn_close.php");
if($MyPage["d_page"]!='')
{
return $MyPage["d_page"];
else return "init.php";
}
関数ページ($d_id){//
include( "conn_db.php");
$Sql_Query="選択* node_page より d_id=$d_id";
$Query_Db=mysql_query($Sql_Query,$Connect);
$MyPage=mysql_fetch_array($Query_Db);
include("conn_close. php");
return $MyPage["d_page "];
}
function showinfo_0($status){//
include("conn_db.php");
$Sql_Query="d_id による部門順から * を選択";
$Query_ Db=mysql_query($Sql_Query,$ Connect);
$info_all=mysql_num_rows($Query_Db);
$this->items["info_all"]=$info_all;
if($status==1) {//when status=1 から取得したすべてのデータを表示データベース
$MNums=$info_all;
if($status==0) {//status=0 の場合、データベースから取得した 6 つのメッセージを表示します
$MNums=6;
}
for($i=1;$i {
$Messages=mysql_fetch_array($Query_Db);
$this->items["d_id][$i]"]=$Messages["d_id"];
$this- >items["f_node][$i]"]=$Messages["f_node"];
$this->items["node_value][$i]"]=$Messages["node_value"];
$ this->items["l_node][$i]"]=$Messages["l_node"];
$this->items["r_node][$i]"]=$Messages["r_node"];
}
include("conn_close.php");
}
}

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

Dreamweaver Mac版
ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
