⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.h

📁 用程序模拟生命演化游戏
💻 H
字号:
/*

  请修改这些队列函数,以适应循环链表
  
  可考虑删去 front 或 rear

  除此之外,还可以考虑函数的返回值是否恰当

*/
typedef struct Node *PNode;
struct Node			// 结点结构 
{ 
	DataType info;
	PNode    link;
};

struct LinkQueue 		// 链接队列类型定义 	
{  
	PNode front; 		// 头指针 
	PNode rear; 		// 尾指针 
};

typedef struct LinkQueue *PLinkQueue;

//创建一个空队列
PLinkQueue createEmptyQueue_link( )
{ 	
	PLinkQueue plqu;
	plqu = (PLinkQueue )malloc(sizeof(struct LinkQueue));
	if (plqu!=NULL)
	{	
		plqu->front = NULL;
		plqu->rear  = NULL;
	}
	else
		printf("Out of space!! \n");
	return (plqu);
}

//判断链接表示队列是否为空队列 
int isEmptyQueue_link( PLinkQueue plqu )
{
	return (plqu->front == NULL);
}


//进队列
void enQueue_link( PLinkQueue plqu, DataType x)
{ 
	PNode p;
	p = (PNode )malloc( sizeof( struct Node ) );
	if ( p == NULL )
		printf("Out of space!");
	else
	{ 
		p->info = x;
		p->link = NULL;
		if (plqu->front == NULL)
		{ 
			plqu->front = p;
			plqu->rear = p;
		}
		else
		{ 
			plqu->rear->link = p;
			plqu->rear = p;
		}
	}
}

//出队列
void deQueue_link( PLinkQueue plqu )
{ 
	PNode  p;
	if( plqu->front == NULL )
		printf( "Empty queue.\n " );
	else
	{ 
		p = plqu->front;
		plqu->front = plqu->front->link;
		free(p);
	}
}

// 在非空队列中求队头元素 
DataType frontQueue_link( PLinkQueue plqu )
{ 
	return (plqu->front->info);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -