数据结构学习笔记:链队列和循环队列

一、链式队列

链式队列,简称"链队列",即使用链表实现的队列存储结构。

链式队列的实现思想同顺序队列类似,只需创建两个指针(命名为 top 和 rear)分别指向链表中队列的队头

 创建链式队列的 C 语言实现代码为:

//创建链队列结点 
typedef struct LinkNode{
	int data;
	LinkNode* next; 
}*LinkNodePtr; 

//链队列
typedef struct LinkQueue{
	LinkNodePtr front;   //队头指针 
	LinkNodePtr rear;    //队尾指针 
}*LinkQueuePtr; 

初始化 

LinkQueuePtr initQueue(){
	LinkNodePtr headerPtr=(LinkNodePtr)malloc(sizeof(struct LinkNode));
	LinkQueuePtr resultPtr=(LinkQueuePtr)malloc(sizeof(struct LinkQueue));
	
	headerPtr->data=-1;
	headerPtr->next=NULL;
	
	resultPtr->front=headerPtr;
	resultPtr->rear=headerPtr;
	
	return resultPtr; 
} 

 打印

void outputLinkQueue(LinkQueuePtr paraQueuePtr){
	LinkNodePtr tempPtr=paraQueuePtr->front->next;
	
	while(tempPtr!=NULL){
		printf("%d ",tempPtr->data);
		tempPtr=tempPtr->next;
	}
	printf("\r\n");
}

 

 链队队列中,当有新的数据元素入队,只需进行以下 3 步操作:

  1. 将该数据元素用节点包裹,例如新节点名称为 elem;
  2. 与 rear 指针指向的节点建立逻辑关系,即执行 rear->next=elem;
  3. 最后移动 rear 指针指向该新节点,即 rear=elem;

  • void enqueue(LinkQueuePtr paraQueuePtr,int e){
    	//创建新节点 
    	LinkNodePtr p=(LinkNodePtr)malloc(sizeof(LinkNodePtr));
    	p->data=e;
    	p
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值