Maison  >  Article  >  développement back-end  >  Introduction à la méthode d'implémentation de la pile et de la file d'attente dans la fonction tableau PHP (exemple de code)

Introduction à la méthode d'implémentation de la pile et de la file d'attente dans la fonction tableau PHP (exemple de code)

不言
不言avant
2019-02-12 14:38:093043parcourir

Ce que cet article vous apporte est une introduction à la méthode d'implémentation des piles et des files d'attente à l'aide des fonctions de tableau PHP (exemples de code). J'espère que cela sera utile. toi.

"PHP est le meilleur langage du monde !"

Haha, bonne année à tous, après cette phrase du début, pensez-vous que votre envie de jurer et de vous disputer est aussi imparable que le diable ? Pendant le Nouvel An chinois, je m'ennuyais vraiment, alors j'ai sorti le livre "Introduction et amélioration du développement de sites Web PHP+Mysql" que je ne connaissais pas quand je l'ai acheté et je l'ai relu. Le Raspberry Pi 3B a pu être connecté à ma maison après de simples ajustements. Une fois le wifi connecté, je l'ai branché et je l'ai utilisé comme serveur expérimental. J'ai parcouru les exemples du livre que je lisais aujourd'hui. et j'ai trouvé quatre fonctions sur les tableaux fournies par PHP : array_push(), array_pop(), array_unshift(), array_shift() coopère avec le tableau lui-même, et la pile et la file d'attente sont implémentées d'un seul coup. Par rapport au langage C, ceci. le bonheur vient trop soudainement.

Définissez une pile, qui est directement un $rangelist=array("Wolf Warrior","Wolf Warrior 2","Wandering Earth"), faites-la fonctionner, poussez array_push($rangelist,"Wu Jing "), pop $result=array_pop($rangelist) et insérez l'élément directement dans $result. Par rapport au code suivant implémenté en langage C, je dois vraiment coder avec le sourire. Avant, je m'inquiétais du développement Internet à chaque fois jour. Sans épée, je ne sais pas quoi faire. C’est vraiment stupide d’avoir un si bon outil devant soi et de ne pas savoir comment le prendre.

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;
}

Définissez une file d'attente ou un tableau, $quenelist=array("Wolf Warrior","Wolf Warrior 2","Wandering Earth"), queue array_unshift($quenelist, "Operation Red Sea"), retirer la file d'attente, $result=array_shift($quenelist), les éléments retirés de la file d'attente sont stockés dans $result, rafraîchissant et détendu. Regardons à nouveau le code du langage 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;
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer