C语言回顾

您所在的位置:网站首页 循环队列入队退队 C语言回顾

C语言回顾

#C语言回顾| 来源: 网络整理| 查看: 265

------------------------------------------------------------------------------------------- 前言:

前几天做了海康威视的笔试题,正好大题遇上了用C语言编程实现队列的入队和出队功能;于是考完后就自己调试当时所写的代码,错误颇多,经过几小时的努力调试成功,特定发到博客上分享给大家。

-------------------------------------------------------------------------------------------

队列:就跟排队买饭一样,先到者先买饭,买完就离开,后来的人只能排队,也就是先进先出;因此,本次编程我以链表的形式来实现题目需求;

那这么表示一个队列的头和尾呢?这里,我们引入2指针,分别是指向第一个节点的头指针,指向尾节点的尾指针,那如何移动呢?你可以想一下,买饭的时候是一个接一个的排队,但是买饭的窗口是固定的,你只有到窗口,阿姨才问你吃什么饭,然后打菜给你,拿到了饭你也就走了,轮到下一个人买,也就是说指针pTailNode一直向后移,而pHeadNode一直在处理这些人所需要处理的事情,所以说先进先出的这个道理。再简单一句话,你pTailNode一直在给pHeadNode找麻烦,而pHeadNode又像爸爸一样给你搽屁股的解决这些事;

下面是代码流程:

结构体定义如下: typedef struct _QUEUE_NODE_ //一个节点的结构体 { struct _QUEUE_NODE_ *pNextNode; int data; }QUEUE_NODE,*PQUEUE_NODE; 说明: 1.海康威视里面存放的数据是void *类型,本实验就用简单的int 类型来代替; 2.定义一个结构体类型名为_QUEUE_NODE_,并且用该结构体类型名命名一个叫QUEUE_NODE,它等价于QUEUE_NODE = struct _QUEUE_NODE_ ,而*PQUEUE_NODE呢? 同样,*PQUEUE_NODE = (struct _QUEUE_NODE_ *),所以调用时只需QUEUE_NODE,PQUEUE_NODE即可; 3.该结构体中含有1个数据类型,1个结构体指针类型(用于连接下一个节点); typedef struct QUEUE //链表的结构体 { QUEUE_NODE *pHeadNode; QUEUE_NODE *pTailNode; }QUEUE_HANDLE,*PQUEUE_HANDLE; 说明: 1.海康威视


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3