ホームページ  >  記事  >  バックエンド開発  >  PHPの配列関数でスタックとキューを実装する方法の紹介(コード例)

PHPの配列関数でスタックとキューを実装する方法の紹介(コード例)

不言
不言転載
2019-02-12 14:38:092966ブラウズ

この記事の内容は、PHP の配列関数でスタックとキューを実装する方法 (コード例) を紹介するものであり、一定の参考価値があります。必要な友人は参考にしていただければ幸いです。 。

「PHP は世界で最高の言語です!」

ははは、皆さん明けましておめでとうございます。冒頭のこの文の後、悪魔のように罵り、口論したくなり、止められなくなります。旧正月中、本当に退屈だったので、買った時には知らなかった「PHP Mysql Web サイト開発入門と改善」という本を引っ張り出して読み直してみたところ、たまたま Raspberry Pi 3B が起動していました。簡単な調整で自宅のコンピュータに接続できました。Wi-Fi がオンになったら、接続して実験サーバーとして使用しました。本の例を実行しました。今日たまたま配列に関する章を読んでいて、次のことに気づきました。 PHP が提供する配列に関する 4 つの関数、array_push()、array_pop()、array_unshift()、array_shift() を配列そのものと組み合わせることで、スタックとキューを同時に実現することができ、C 言語と比較すると、この幸せはあまりにも突然に訪れます。

直接 $rangelist=array("Wolf Warrior","Wolf Warrior 2","Wandering Earth") であるスタックを定義し、それを操作し、array_push($rangelist,"Wu) をプッシュします。 Jing ")、pop $result=array_pop($rangelist)、そして要素を$resultに直接ポップします。C言語で実装された以下のコードと比較すると、本当に笑顔でコーディングする必要があります。以前はインターネット開発について毎日心配していました剣がなければ何をすればいいのかわかりません。目の前に素晴らしい道具があるのに、どうやって手に取ったらいいのかわからないのは本当に愚かです。

typedef struct stack
{
	ElemType Data[MAXSIZE];
	int top;
}SqStack;
 

 
bool Push(SqStack *s,ElemType e)//压栈 
{
	if(s->top==MAXSIZE-1)
	    {
    	printf("Stack is Full\n");   	
		return FALSE;
	    }
	    s->Data[++(s->top)]=e;//先移指针再入数 
	    return TRUE;
}
bool  Pop(SqStack *s,ElemType *e)//出栈 
{
	if(s->top==-1)
	    {
    	printf("Stack is Empty\n");   	
		return FALSE;
	    }
		*e=s->Data[(s->top)--];//先取数再减指针 
		return TRUE;
}

キューまたは配列を定義します。$quenelist=array("Wolf Warrior","Wolf Warrior 2","Wandering Earth")、array_unshift($quenelist,"Red Sea Action" と入力します) )、デキュー、$result=array_shift($quenelist)、デキューされた要素は $result に保存され、リフレッシュされてリラックスされます。C 言語コードをもう一度見てください:

 typedef struct queue
{
	ElemType Data[MAXSIZE];
	int front,rear;
}SqQueue;
 
 
bool EnQueue(SqQueue *q,ElemType e)//入队 
{
	if((q->rear+1)%MAXSIZE==q->front)  //队满 
	    {
    	printf("Queue is Full\n");   	
		return FALSE;
	    }
	    q->Data[q->rear]=e;
		q->rear=(q->rear+1)%MAXSIZE;//队尾指针加1取模 
		printf("EnQueue data %d into Queue \n",e);
	    return TRUE;
}
bool  DeQueue(SqQueue *q,ElemType *e)//出队 
{
	if(q->rear==q->front)
	    {
    	printf("Queue is Empty\n");   	
		return FALSE;
	    }
		*e=q->Data[q->front];//先取数再移指针 
		q->front=(q->front+1)%MAXSIZE;  //队头指针加1取模  
		printf("DeQueue data is %d\n",*e);
		return TRUE;
}

以上がPHPの配列関数でスタックとキューを実装する方法の紹介(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。