问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

链式存储队列的数据结构(逻辑结构+存储结构)分析、链式存储队列的基本C语言结构体分析与定义

发布网友 发布时间:2022-05-06 02:06

我来回答

2个回答

热心网友 时间:2023-10-10 16:13

链式队列

链式存储结构的队列称作链式队列。

链式队列的队头指针指在队列的当前队头结点位置,队尾指针指在队列的当前队尾结点位置。不带头结点的链式队列时可直接删除队头指针所指的结点。

链式队列中结点的结构体可定义如下:

typedef struct qnode

{

DataType datal;

Struct qnode *next;

}LQNode;

为了方便参数调用,通常把链式队列的队头指针front和队尾指针rear也定义为如下的结构体类型LQueue:

typedef struct

{

LQNode *front;

LQNode *rear;

}LQueue;

链式队列操作的实现

(1) 初始化QueueInitiate(LQueue *Q)

void QueueInitiate(LQueue *Q)

{

Q->rear=NULL;

Q->front=NULL;

}

(2)非空否QueueNotEmpty(LQueue Q)

int QueueNotEmpty(LQueue Q)

/*判断链式队列Q非空否,非空返回1,否则返回0*/

{

if(Q.front==NULL)return 0;

else return 1;

}

(3)入队列QueueAppend(LQueue *Q,DataType x)

int QueueAppend(LQueue *Q,DataType x)

/*把数据元素x插入链式队列Q队列的队尾,入队列成功返回1,否则返回0*/

{

LQNode *p;

if((p=(LQNode*)malloc(sizeof(LQNode)))==NULL)

{

printf(“内存不足无法插入!\n);

return 0;

}

p->data=x;

p->next=NULL;

if(Q->rear!=NULL)Q->rear->next=p;

Q->rear=p;

if(Q->front==NULL)Q->front=p;

return 1;

}

(4)出队列QueueDelete(LQueue *Q,DataType *d)

int QueueDelete(LQueue *Q,DataType *d)

/*删除链式队列Q的队头数据元素值到d,出队列成功返回1,否则返回0*/

{

LQNode *p;

if(Q->front==NULL)

{

printf(“队列已空无数据元素出队列!\n”);

return 0;

}

else

{

*d=Q->front->data;

p=Q->front;

Q->front=Q->front->next;

if(Q->front==NULL)Q->rear=NULL;

free(p);

return 1;

}

}

(5)取队头数据元素QueueGet(LQueue *Q,DataType *d)

int QueueGet(LQueue *Q,DataType *d)

/*取链式队列Q的当前队头数据元素值到d,成功返回1,否则返回0*/

{

if(Q.front==NULL)

{

printf(“队列已空无数据元素出队列!\n);

return 0;

}

else

{

*d=Q.front->data;

return 1;

}

}

(6)撤销动态申请空间Destory(LQueue *head)

int Destory(LQueue *head)

{

LQNode *p,*p1;

p=Q.front;

while(p!=NULL)

{

p1=p;

p=p->next;

free(p1);

}

}
帮你转的,我觉得他描述的很清楚。希望对你有帮助。

热心网友 时间:2023-10-10 16:13

网上一大堆,建议百度!追问百度得到 就不会来问了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
婚内出轨离婚后财产如何分配 婚内出轨方离婚财产的分配方式 陇西粉煤灰加气砌块生产线 多动能砌块砖机/水泥砌块机多少钱设备 手把手教你工程师应该掌握的20个模拟电路 做仓管Excel学到什么程度 我是新手仓管 请各位帮 做一份EXCEL仓库电子表格,有每日出入库 结存记 ... 我想做名仓管,但不知道都用什么excel 函数,希望各位大侠帮我下,呵呵... 七年级下学期数学一、二单元测试卷以及答案,越快越好!!谢谢_百度... 网易邮箱APP怎么绑定微信 账号关联方法介绍 C语言 链队列 凯立德导航最新版本是哪个版本? 汽车导航凯立德最新的版本是哪个 求关于石兰的网名。 要好听滴!!! 空谷幽兰 相对应的情侣网名是什么 网名 幽兰 百合,不知道好听吗? 幽兰微信名字怎样 空谷幽兰和静若幽兰那个网名好听 帮忙取个带“幽”或者“蓝”、“兰”的网名 谁能帮我取个把幽兰和雪和在一起的网名 xx幽兰的网名 静若幽兰和恬静淡雅那个网名好听,寓意好?谢谢 心静若水,静若幽兰哪个网名好? 电话号码怎么导入新手机阿? 网名空谷幽兰浮生若梦哪个好女士用? 含幽兰最霸气的网名 幽兰修竹的网名好听吗? 老板把别人的工资发了没给我发是不是不给我发? 标书里可以引用其他文件吗 怎么打开标书文件BSL C语言如何建立链队列 请教下我写的哪里出错了。 数据结构C语言习题求解……由计算机随即生产20个100以内的随机整数。(链式队列的应用) 求C语言实现链队列的建立和出入队列 C语言 链队列 队尾插入元素 的问题 关于c语言和数据结构的,将一个链式队列中的元素依次取出,并打印元素的值。代码如下 C语言,链式队列的基本操作(初始化):请问哪里出问题了? C语言,链队列问题求解队列节点间靠什么联系在一起的?下面有代码请网友指点 C语言链队列的入队与出队,求高手帮我看下!我要如何该? 不会做啊,求高手帮忙,用c语言建立链队列,显示每个结点,并进行插入,删除处理 C语言 用单链表实现队列 用C语言编写一算法将一链队列的元素依次取出,并打印这些元素值 我有一个链队列程序,C语言的。不知道,怎么回事,无法初始化。请高手指教。。。 《绝地求生》大逃杀进不去游戏,卡在创建角色页面,怎么办? steam上的《绝地求生大逃杀》进界面卡住了怎么办? 《绝地求生大逃杀》卡在登入界面是怎么回事? 绝地求生大逃杀一直卡在这界面什么情况 绝地求生大逃杀卡在loading界面怎么办?绝地求生大逃杀为什么进不去 为什么《绝地求生大逃杀》进入游戏对局之后一直卡在读条界面? 为什么绝地求生大逃杀进不去游戏卡在创建角色页面了 为什么《绝地求生》大逃杀一直卡在loading页面?