Code前端首页关于Code前端联系我们

顺序队列入队、出队、遍历打印的基本操作及C/C++代码实现

terry 2年前 (2023-09-27) 阅读数 80 #数据结构与算法

1.对齐操作

如图所示。当执行入队(推送)操作时,我们必须首先检查队列是否为空。如果该行为空,则头指针和尾指针必须一起指向第一个节点,即front=n;rear=n。

顺序队列入队、出队、遍历打印基本操作及C/C++代码实现

如果该行不为空,我们只需要向后移动结束节点,通过不断移动next指针,我们需要为新节点创建一个等待列表。

顺序队列入队、出队、遍历打印基本操作及C/C++代码实现

代码可表达如下:

//队列操作void push(queue *q❀ 数据){节点*n =init_node(); n->data=数据; n->next=NULL; //使用尾部插入方式 //if(q->rear==NULL){ //也可以使用这种方式 )){ q->返回=n; q->后退->下一个=n; //n将是当前结束节点的下一个节点q->rear=n; //尾指针应该指向n(注意必须进行行空判断),如图,如果该行只有一个元素(即头尾指针指向同一个)节点),只需要制作头指针和尾指针。 null(NULL)并释放该节点。

顺序队列入队、出队、遍历打印基本操作及C/C++代码实现

如图所示,如果队列包含两个以上的项,那么我们需要将该行的头指针指向该头指针当前指向的下一项,并放开当前的项物品。

顺序队列入队、出队、遍历打印基本操作及C/C++代码实现

代码可以表示为:

//出队操作 void pop(queue *qn =q ->front; 如果(空 (q)){ 后♼ ♼ › Q-> 后) { Q-> 前 = NULL; // 只有一个元素会直接变成两个。只需指向端点即可控制空气     q->rear=NULL;空间 }其他{                 >n (n); }}

3.打印行元素(遍历)

打印一行中的所有元素,如果该行不为空,可以通过节点的next指针来迭代输出行中的元素。

代码可表达如下:

//打印队列元素 void print_queue node *n = init_node(); † ; //该行当前为空,直接返回函数末尾 } printf❿d t" , n-> data); ("\n "); //别忘了包起来。
int calac(队列 *q){ 节点 *n = init_node(); int cnt=0; //计数器设计0; //该行当前为空,函数直接结束。 } 同时 (n!=NULL)♶                n=n->下一个; 返回cnt;}

4。文章代码

#include#include//节点定义 typedeftypedef♷❀ 节点 { int 数据;

顺序队列入队、出队、遍历打印基本操作及C/C++代码实现

结构下一个;

}节点;/ /等待列表、队主指针和队列尾指针的定义typedef (node)); if(n==NULL){ //创建失败,退出 } 返回 n;n 行*init_queue(){ 队列 *q=(行*)malloc(♾u)♽♽ 如果(q == NULL){ //创建失败,退出 退出(0); 同时分配给DE,l为NU/ q ->前面=NULL; q->后=NULL; q;}//等待名单为空。 if(q->front ==NULL){ 返回 1; //1--True,表示队列不为空。 0; //0--表示false,表示队列为空 push(queue * q, int data){ int 节点 *n =init_node();n;❙;; n->下一个=NULL; › { q->后退->下一个=n; //n将是当前结束节点的下一个节点| 节点*n=q->前; //该行当前为空,函数直接结束。 } if(q->前==q->后){ q->前=NULL; //如果只有一个元件,则直接连接两端。只需指向空气调节器q->rear=NULL; }其他{                 -前>-}}? n=q-> 前面; if(空(q)){n

//当前行为空,函数直接返回末尾 } =NULL) printf("%d\t ",n->数据);    n>n ("\n “); //别忘了包起来}//main函数调用,这里只是简单介绍一下它的使用 队列 *q=init_queue(); ////////////////////////////////// //////////////////////////////////////////////// // /// printf("进入队列\n"); for (int) i = 1;i

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门