数据结构:队列(C语言实现)&一些个人总结

今天终于是把队列的基本操作学完了,队列和栈其实大同小异,队列遵循的是先进先出原则,而栈遵循的是先进后出原则,形象的来说,栈是一个杯子,而队列是一个水管,谁先进队自然就会先流出来。

1.队列创建以及初始化

这次还是用链表来实现,与栈不同的是,由于队列是一个两头都开口的结构,入队和出队分别在两个不同的方向进行,因此不仅需要头指针(head)还需要一个尾指针(tail)。

typedef struct NODE{
int data;
struct NODE*next;

}NODE,*LINK_NODE;//创建节点

typedef struct QUENE
{
   LINK_NODE head,tail;//队列首尾
   int size;//队列大小
}QUENE;

然后是初始化了,但是我自我觉得对节点的初始化好像一直没有什么用......

LINK_NODE initNODE(){
    LINK_NODE newnode=(LINK_NODE)malloc(sizeof(NODE));
    newnode->data=0;
    newnode->next=NULL;
    return newnode;
}//节点初始化

void initquene(QUENE* quene){
    quene->head=NULL;
    quene->size=0;//长度没有
    quene->tail=NULL;//头尾指针为空

}//队列的初始化

2.队列的插入(入队)以及删除(出队)

其实对于链表,栈,队列而言,感觉这两个操作都是最核心的操作,因为这涉及一些指针的转换,顺序的问题,自我感觉在

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值