第二章 栈、队列、链表

本文介绍了数据结构中的栈、队列和链表。栈遵循后进先出的原则,常用于回文字符串的判断;队列则是先进先出,讨论了如何进行队列操作;链表则通过结构体和指针实现动态存储,详细讲解了如何在有序链表中插入新元素。
摘要由CSDN通过智能技术生成

第二章 栈、队列、链表

完整代码下载

第一节 队列

首先,引入两个整形变量 head 和 tail 分别记录队列的队首和队尾的下一位(为当队列中只剩下一个元素时,队首和队尾重合会带来一些麻烦)。

在队首加一个数: head++

在队尾增加一个数: q[tail]=x;tail++

队列 : 队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作,这称为“出队”,而在队列的尾部(tail)进行插入操作,这称为“入队”。当队列中没有元素时(即 head==tail),称为空队列。我们称为“先进先出”(First In First Out,FIFO)原则。

我们可以将队列的三个基本元素(一个数组,两个变量)封装为一个结构体类型

struct queue 
{     
	int data[100];//队列的主体,用来存储内容     
	int head;//队首     
	int tail;//队尾 
}; 

那么我们如何定义结构体变量和访问结构体变量的内部成员呢?

struct queue q; 

q.head=1; 
q.tail=1; 
scanf("%d",&q.data[q.tail]); 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值