本篇文章給大家帶來的內容是關于PHP數組函數實現棧與隊列的方法介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
"PHP是世界上最好的語言!"
哈哈,各位新年好,開頭這一句過后,大家想罵人,想吵架的沖動是不是像魔鬼一樣無法攔阻?過年期間,實在無聊,就把《PHP+Mysql網站開發入門與提高》這本不知道啥時買的書拖出來又讀一回,剛好我的那個樹莓派3B經過簡單調整,可以連接到家里的wifi上了,便插上電,當成實驗服務器,跑跑書中例子,今天剛好在看數組這一章,發現php提供的四個關于數組的函數:array_push(),array_pop(),array_unshift(),array_shift()配合數組本身,一下子就實現了棧(stack)和隊例(quene),跟C語言比起來,這幸福來的太突然了。
定義一個棧,直接就是一個$rangelist=array("戰狼","戰狼2","流浪地球"),操作他,入棧array_push($rangelist,"吳京"),出棧$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("戰狼","戰狼2","流浪地球"),入隊array_unshift($quenelist,"紅海行動"),出隊,$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粉絲網其它相關文章!
新聞熱點
疑難解答