C语言中的队列、栈和链表

本文介绍了C语言中队列、栈和链表的基本概念和操作。队列遵循“先到先服务”原则,由队头和队尾指标管理;栈则遵循“先进后出”原则,常用于表达式求值等场景;链表利用指针实现元素间的连接,分为单向链表等类型。结构体的定义和初始化也在文中提及。
摘要由CSDN通过智能技术生成

C语言中的队列、栈和链表:

1. C语言中的队列:

队列在生活中十分常见,例如排队买票就是一个队列,先排队的人会先买到票,队列就是一个“先到先服务”的处理。
队列一般包含三个元素:队列中存放的数据,队头和队尾两个指标。出队即让队头指标++,即指标向后移动一位,数据即可出队。类似的,数据入队就让队尾指标++,即队尾指标向后移动一位。
结构体的初始化:
struct lei
{
char name;
int num;
int age;
};
lei x1, x2;
结构体初始化首先定义结构体的类型,就像C语言中的int、char一样,只是结构体的类型是我们自己定义的;之后定义结构体里面的元素,定义完之后在大括号后打上分号。之后再申明结构体变量的名称。
定义结构体的同时也可以定义结构体的名字,例如:
struct lei
{
char name;
int num;
int age;
}student1, student2;

/*解密QQ号:解密规则为每次删除队列的第一个数,将第二个数移到队尾,直到数据删完为止,把这些删除的数连在一起就是QQ号, 队列为631758924*/
//1.先用数组模拟队列来实现操作
#include<stdio.h>
int main()
{
   
     int a[101], i, n;	//创建一个足够大的数组来存储数据
     int head, tail;    //定义队列的队首指标与队尾指标
     printf("请输入共有多少位数:");
     scanf("%d", &n);
     for(i = 0; i < n; i++)
     {
   
           scanf("%d", &a[i]);
     }
     head = 0;
     tail = n;
     while(head < tail)		//当队列不为空时执行操作
     {
   
     	printf("%d", a[head]);		//出队队首元素
     	head++;			//队首指标向后移动一位
     	a[tail++] = a[head];	//将第二个数添加到队尾
     	head++;
     }
     getchar(); getchar();
     return 0;
}




//2.定义结构体来实现相关操作
#include<stdio.h>
struct card		//定义一个card型的结构体,有三个元素,数据域、头指针和尾指针
{
   
    int data[101];
    int head;
    int tail;
};
int main()
{
   
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值