当前位置: 首页 > news >正文

数据结构之队列的链式结构-初始化-判断队列是否为空-入队-出队-获取队头元素

 数据结构之队列的链式结构基本操作-初始化-判断队列是否为空-入队-出队-获取队头元素

完整可运行代码:

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

typedef int ElemType;

typedef struct QueueNode
{
	ElemType data;
	struct QueueNode *next;
}QueueNode;

typedef struct 
{
	QueueNode *front;
	QueueNode *rear;
}Queue;

//初始化
Queue* initQueue()
{
	Queue *q = (Queue*)malloc(sizeof(Queue));
	QueueNode *node = (QueueNode*)malloc(sizeof(QueueNode));
	node->data = 0;
	node->next = NULL;
	q->front = node;
	q->rear = node;
	return q;
}

//判断队列是否为空为空
int isEmpty(Queue *q)
{
	if (q->front == q->rear)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}

//入队
void equeue(Queue *q, ElemType e)
{
	QueueNode *node = (QueueNode*)malloc(sizeof(QueueNode));
	node->data = e;
	node->next = NULL;
	q->rear->next = node;
	q->rear = node;
}

//出队
int dequeue(Queue *q, ElemType *e)
{
	if (isEmpty(q))
	{
		printf("空的\n");
		return 0;
	}

	QueueNode *node = q->front->next;
	*e = node->data;
	q->front->next = node->next;
	if (q->rear == node)
	{
		q->rear = q->front;
	}
	free(node);
	return 1;
}

//获取队头元素
ElemType getFront(Queue *q)
{
	if (isEmpty(q))
	{
		printf("空的\n");
		return 0;
	}
	return q->front->next->data;
}


int main()
{
	Queue *q = initQueue();
	equeue(q, 10);
	equeue(q, 20);
	equeue(q, 30);
	equeue(q, 40);
	equeue(q, 50);
	ElemType e;
	dequeue(q, &e);
	printf("出队%d\n", e);
	dequeue(q, &e);
	printf("出队%d\n", e);
	printf("%d\n", getFront(q));
	return 0;
}

运行结果:

 

相关文章:

  • 八目导航 version:1.2
  • Linux 中进程的 nice 值对程序的占用的影响测试
  • 边缘计算 vs. 云计算,谁才是工业物联网的未来?
  • Matlab Hessian矩阵计算(LoG算子)
  • Django 生成 ssl 安全证书,切换 https、wss协议(daphne 、nginx)
  • C++之哈希
  • kubectl 命令参数详解与示例
  • 数据库DBA认证,选哪个认证合适?
  • Git撤回操作全场景指南:未推送与已推送,保留和不保留修改的差异处理
  • 解决PHP内存溢出问题的讨论和分析
  • 通过git文件查看大模型下载链接的解决方案
  • 【Qt】Ubuntu22.04使用命令安装Qt5和Qt6
  • Day23:和为s的数字
  • 金牛区文创地标:国际数字影像产业园亮点解析
  • Android Kotlin 权限工具类封装:简化动态权限管理
  • 三维空间中点、线、面的关系
  • 【Elasticsearch】开启大数据分析的探索与预处理之旅
  • dynamic_cast的理解
  • 使用OpenGL实现双线性插值和双三次插值C++实现
  • 【C++】类和对象(二)默认成员函数之拷贝构造函数、运算符重载
  • 成就彼此,照亮世界:“中欧建交50周年论坛”在沪成功举行
  • 图集︱“中国排面”威武亮相
  • 红场阅兵即将开始!中国人民解放军仪仗队亮相
  • 水利部:山西、陕西等地旱情将持续
  • 港理大研究揭示:塑胶废物潜藏微生物群落或引发生态危机
  • 上任后首访,德国总理与法国总统举行会晤