当前位置: 首页 > news >正文

栈和队列(三)

队列的链式存储表示和实现

链队的类型定义

typedef struct qnode{char data;struct qnode *next;
}qnode,*queneptr;typedef struct{queneptr front;queneptr rear;
}linkqueue;

  1. typedef struct qnode{}

    • 定义了一个名为qnode的结构体。
    • 结构体成员包括:
      • char data:一个字符类型的数据成员,用于存储队列中的数据元素。
      • struct qnode *next:一个指向同类型结构体的指针,用于链接队列中的节点,形成链表结构。
  2. typedef struct{}

    • 定义了一个名为linkqueue的结构体。
    • 结构体成员包括:
      • queneptr front:一个指向qnode结构体类型的指针,用于指向队列的队头节点。
      • queneptr rear:一个指向qnode结构体类型的指针,用于指向队列的队尾节点。

这段代码实现了一个链式队列的数据结构,其中每个节点包含一个字符数据和指向下一个节点的指针,而linkqueue结构体包含队头和队尾指针,用于管理整个队列 

链队的初始化

void initqueue(linkqueue *q){q->front=q->rear=(queneptr)malloc(sizeof(qnode));q->front=NULL;
}

入队

void enqueue(linkqueue q,char e){queneptr p=(queneptr)malloc(sizeof(qnode));p->data=e;p->next=NULL;q.rear->next=p;q.rear=p;
}

 

出队

void dequeue(linkqueue q){queneptr p=(queneptr)malloc(sizeof(qnode));p=q.front->next;q.front->next=p->next;if(q.rear==p)q.rear=q.front;
}

 


http://www.mrgr.cn/news/65579.html

相关文章:

  • DPDK 简易应用开发之路 6:流规则配置与多队列数据包处理
  • 创维E900-S_华为EC6108V9_v9u_海思hi3798mv100华为系统优盘刷机固件包
  • 项目一:使用 Spring + SpringMVC + Mybatis + lombok 实现网络五子棋
  • 终于弄懂了Python中元组与列表的区别
  • 代码世界--
  • VSCode进阶之路
  • 新手入门c++,咳咳,(9),咳咳
  • 你从未见过的小主机,买也买不到的科技尤物,只让你眼馋
  • 考公VS考研,在职上班族拼哪个性价比高?
  • Ubuntu开启FTP与SSH服务
  • JS中面向对象
  • 源码阅读心得---如何从零开始阅读一个框架的源码
  • (七)Python运算符和优先级
  • 心觉:人每日60000念头,如何让你的时间精力只专注于核心目标?
  • R 语言数据导入与导出
  • 贝尔不等式的验证
  • “代码世界的必修课:Git完整指南“(3)
  • SSD201 SSD202D SigmaStar智能高清显示芯片
  • 「Mac畅玩鸿蒙与硬件15」鸿蒙UI组件篇5 - Slider 和 Progress 组件
  • 北京美信时代渠道代理:运维后期维保服务策略
  • 跳表原理笔记
  • TensorRT-LLM笔记
  • 高效内容营销策略提升品牌影响力与客户忠诚度
  • RAC 添加redo log group
  • 惊喜!RFID技术的应用竟如此多元?
  • springboot使用kafka推送数据到服务端,带认证