数据结构——队列函数(C语言)

数据结构——队列函数(C语言)

//队列的构造 (队列) 

#include<stdio.h>
#include<stdlib.h>

#define OK       1
#define TRUE  1
#define FALSE 0

typedef struct Element{
	int x;     //自定义的数据域 
}Element;

 typedef struct array{      //定义队列结构 
 	Element elem;
 	struct array *next;
 }*PLArray; 
 
 typedef struct Node{
 	PLArray  front;   //指向队头 
 	PLArray  rear;    //指向队尾 
 	int len;          //队列实际长度 
 }*pNode;
 
 
/********队列函数*******/
int InitArray(pNode &S){    //构造空队列 
	PLArray q=(PLArray)malloc(sizeof(PLArray)); //申请新结点 
	S->front=q;
	S->rear=q;
	S->front->next=NULL;
	S->len=0; 
	return OK;
}

int Push(pNode &S,Element e){    //插入数据e为队列的队尾 
	PLArray p=(PLArray)malloc(sizeof(PLArray));  //申请新结点 
	p->elem=e;
	
	p->next=NULL;
	S->rear->next=p;   //将结点插入到队尾 
	S->rear=p;         //修改队尾指针 
	S->len++; 
}

int Pop(pNode &S,Element &e){    //删除队头元素,,用e返回其删除数据 
	if(S->front==S->rear)  return FALSE;
	PLArray p=S->front->next;   //p指向队头
	e=p->elem;
	S->front->next=p->next;   //修改头结点的指针域
	if(S->rear==p) S->rear=S->front;   //最后元素被删除
	S->len--;
	return OK ;
}

int ArrayEmpty(pNode &S){    //判断队列是否为空 
	if(S->len==0)  return TRUE;
	else           return FALSE;
} 

int Refer(pNode &S,Element &e) {  //查询队头元素 
	e=S->front->next->elem;
}
int main(){
	
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/qq_41596568/article/details/83046780