Home>Article>Backend Development> Introduction to the method of implementing stack and queue in PHP array function (code example)
The content of this article is an introduction to the method of implementing stacks and queues in PHP array functions (code examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
"PHP is the best language in the world!"
Haha, Happy New Year everyone, after this sentence at the beginning, is your urge to curse and quarrel like the devil and be unstoppable? During the Chinese New Year, I was really bored, so I pulled out the book "Introduction and Improvement of PHP Mysql Website Development" that I didn't know when I bought it and read it again. It happened that my Raspberry Pi 3B could be connected to the home computer after simple adjustments. When the wifi was on, I plugged it in and used it as an experimental server. I ran through the examples in the book. I happened to be reading the chapter on arrays today and found four functions about arrays provided by PHP: array_push(), array_pop(), array_unshift() , array_shift(), combined with the array itself, realizes stack and queue at once. Compared with C language, this happiness comes too suddenly.
Define a stack, which is directly a $rangelist=array("Wolf Warrior","Wolf Warrior 2","Wandering Earth"), operate it, push array_push($rangelist,"Wu Jing "), pop $result=array_pop($rangelist), and pop the element directly into $result. Compared with the following code implemented in C language, I really have to code with a smile. I used to worry about Internet development every day. Without a sword, I don’t know what to do. It’s really stupid to have such a good tool in front of you but not know how to pick it up.
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; }
Define a queue or an array, $quenelist=array("Wolf Warrior","Wolf Warrior 2","Wandering Earth"), enter array_unshift($quenelist,"Red Sea Action"), dequeue, $result=array_shift($quenelist), the dequeued elements are stored in $result, refreshing and relaxed, look at the C language code again:
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; }
The above is the detailed content of Introduction to the method of implementing stack and queue in PHP array function (code example). For more information, please follow other related articles on the PHP Chinese website!