日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

队列的链式存储和实现(C语言)【队列】(8)

發(fā)布時(shí)間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 队列的链式存储和实现(C语言)【队列】(8) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  • LinkQueue.h
  • DataType.h
  • DataType.cpp
  • LinkQueue.cpp
  • 測(cè)試結(jié)果

LinkQueue.h

#pragma once#include "DataType.h"//鏈?zhǔn)疥?duì)列的結(jié)構(gòu)定義typedef struct _Node {DataType data; //數(shù)據(jù)元素struct _Node* next; //鏈?zhǔn)疥?duì)列中結(jié)點(diǎn)元素的指針 }Node,* NodePtr;typedef struct _Queue {NodePtr front; //隊(duì)列頭指針NodePtr rear; //隊(duì)列尾指針 }Queue;//鏈?zhǔn)疥?duì)列的基本操作void InitQueue(Queue* Q); //初始化 void DestroyQueue(Queue* Q); //銷毀 bool QueueEmpty(Queue Q); //判空 int QueueLength(Queue Q); //獲得隊(duì)列長(zhǎng)度 bool GetHead(Queue Q, DataType* val); //獲得隊(duì)列頭部元素 bool GetTail(Queue Q, DataType* val); //獲得隊(duì)列尾部元素 void QueueTraverse(Queue Q, void(*fp)(DataType)); //遍歷隊(duì)列 bool InsertQueue(Queue* Q, DataType e); //入隊(duì)列 bool OutQueue(Queue* Q, DataType *e); //出隊(duì)列

DataType.h

#pragma once //DataType 的定義 typedef int DataType; int compare(DataType x, DataType y); void visit(DataType e);

DataType.cpp

#include "DataType.h" #include <stdio.h>//DataType 的實(shí)現(xiàn)int compare(DataType x, DataType y) {return (x - y); } void visit(DataType e) {printf("%d\t", e); }

LinkQueue.cpp

#include "LinkQueue.h" #include <malloc.h> #include <stdio.h> #include <stdlib.h> /* ------------------------------------------------------------ 操作目的: 初始化隊(duì)列 初始條件: 無 操作結(jié)果: 構(gòu)造一個(gè)空隊(duì)列 函數(shù)參數(shù): Queue* Q 待初始化的隊(duì)列 返回值: void 無返回值 ------------------------------------------------------------*/void InitQueue(Queue* Q) //初始化 {Q->front = (NodePtr)malloc(sizeof(Node));if (!Q->front){printf("%d->%serror\n", __LINE__, __FILE__);exit(-1);}Q->rear = Q->front;Q->front->next = NULL; }/* ------------------------------------------------------------ 操作目的: 銷毀隊(duì)列 初始條件: 隊(duì)列Q已存在 操作結(jié)果: 銷毀隊(duì)列Q 函數(shù)參數(shù): Queue* Q 待銷毀的隊(duì)列 返回值: void 無返回值 ------------------------------------------------------------*/ void DestroyQueue(Queue* Q) //銷毀 {while (Q->front->next){Q->rear = Q->front->next;Q->front->next = Q->rear->next;free(Q->rear);}free(Q->front);Q->front = Q->rear = NULL; }/* ------------------------------------------------------------ 操作目的: 判斷隊(duì)列是否為空 初始條件: 隊(duì)列Q存在,若隊(duì)列為空返回true 否則返回 false 操作結(jié)果: 函數(shù)參數(shù): Queue* Q 待判斷的隊(duì)列 返回值: bool 是否為空 ------------------------------------------------------------*/ bool QueueEmpty(Queue Q) //判空 {return Q.front == Q.rear ? true : false; }/* ------------------------------------------------------------ 操作目的: 得到隊(duì)列的長(zhǎng)度 初始條件: 隊(duì)列Q已經(jīng)存在 操作結(jié)果: 返回隊(duì)列中元素的個(gè)數(shù) 函數(shù)參數(shù): Queue* Q 待求長(zhǎng)度的隊(duì)列 返回值: void 無返回值 ------------------------------------------------------------*/ int QueueLength(Queue Q) //獲得隊(duì)列長(zhǎng)度 {NodePtr tmp = Q.front->next;int Length = 0;while (tmp){Length++;tmp = tmp->next;}return Length; }/* ------------------------------------------------------------ 操作目的: 得到隊(duì)列首元素 初始條件: 隊(duì)列Q已存在 操作結(jié)果: 用e返回隊(duì)列首元素 函數(shù)參數(shù):Queue* Q 隊(duì)列DataType* val 隊(duì)列首元素的值 返回值: void 無返回值 ------------------------------------------------------------*/ bool GetHead(Queue Q, DataType* val) //獲得隊(duì)列頭部元素 {if (Q.front == Q.rear)return false;*val = Q.front->next->data;return true; }/* ------------------------------------------------------------ 操作目的: 獲得隊(duì)列頭部元素 初始條件: 隊(duì)列存在且不為空 操作結(jié)果: 獲得隊(duì)列Q的頭部元素 函數(shù)參數(shù): Queue* Q 待操作的隊(duì)列 返回值: bool 操作是否成功 ------------------------------------------------------------*/ bool GetTail(Queue Q, DataType* val) //獲得隊(duì)列尾部元素 {if (Q.front == Q.rear)return false;*val = Q.rear->data;return true; }/* ------------------------------------------------------------ 操作目的: 遍歷隊(duì)列元素 初始條件: 隊(duì)列存在且不為空 操作結(jié)果: 遍歷隊(duì)列Q的所有元素 函數(shù)參數(shù): Queue* Q 待遍歷的隊(duì)列 void(*fp)(DataType) 打印隊(duì)列元素 返回值: void 無返回值 ------------------------------------------------------------*/ void QueueTraverse(Queue Q, void(*fp)(DataType)) //遍歷隊(duì)列 {while (Q.front != Q.rear){Q.front = Q.front->next;(*fp)(Q.front->data);}printf("\n"); }/* ------------------------------------------------------------ 操作目的: 在隊(duì)列尾部插入元素e 初始條件: 隊(duì)列Q已存在 操作結(jié)果: 插入元素e作為隊(duì)列新的尾結(jié)點(diǎn) 函數(shù)參數(shù): Queue* Q 待初始化的隊(duì)列 DataType e 待插入的數(shù)據(jù)元素 返回值: bool 操作是否成功 ------------------------------------------------------------*/ bool InsertQueue(Queue* Q, DataType e) //入隊(duì)列 {NodePtr tmp = (NodePtr)malloc(sizeof(Node));if (!tmp)return false;tmp->data = e;tmp->next = NULL;Q->rear->next = tmp;Q->rear = tmp;return true; }/* ------------------------------------------------------------ 操作目的: 刪除隊(duì)列的首元素結(jié)點(diǎn) 初始條件: 隊(duì)列Q存在 操作結(jié)果: 刪除Q隊(duì)列的首元素結(jié)點(diǎn) 函數(shù)參數(shù): Queue* Q 待刪除的隊(duì)列 DataType* e 刪除的隊(duì)列元素 返回值: bool 操作是否成功 ------------------------------------------------------------*/ bool OutQueue(Queue* Q, DataType* e) //出隊(duì)列 {if (Q->front == Q->rear)return false;NodePtr tmp = Q->front->next;*e = tmp->data;Q->front->next = tmp->next;if (tmp == Q->rear)Q->rear = Q->front;free(tmp);return true; }

測(cè)試結(jié)果

總結(jié)

以上是生活随笔為你收集整理的队列的链式存储和实现(C语言)【队列】(8)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 三级av网站 | 亚洲一区二区电影网 | 久久精品夜色噜噜亚洲a∨ 中文字幕av网 | 欧美激情3p | 无码人妻aⅴ一区二区三区有奶水 | 国产精品 欧美 日韩 | 操碰人人| 无码av免费精品一区二区三区 | 亚洲色图婷婷 | 好吊妞视频这里只有精品 | 麻豆tv在线观看 | 狠狠干2018| 四虎影视免费永久大全 | 亚洲天堂2020 | 五月婷婷深深爱 | 亚洲国产情侣 | 国产精品欧美一区二区三区 | 国产超碰人人模人人爽人人添 | 欧美激情在线免费 | 国产精品一区二区精品 | 国产91精品久久久久久久 | 丝袜美女啪啪 | 朝桐光av在线 | 久久精品视频免费 | 香蕉视频网站入口 | 在线观看特色大片免费网站 | 五月婷婷六月综合 | 黑人极品ⅴideos精品欧美棵 | 日韩一区欧美一区 | 黄色av三级 | 午夜福利视频一区二区 | 中文字幕在线观 | 97无码精品人妻 | 国产大奶在线 | 动漫av网站 | 久久综合免费视频 | 午夜啪啪福利视频 | 好屌妞视频这里只有精品 | 美女被男人插 | 青青青草视频在线 | 亚洲成熟少妇视频在线观看 | 日本乱码视频 | 欧美激情成人 | 每日av在线| 亚洲高清视频在线 | 国产精品一区在线播放 | 黑人精品无码一区二区三区AV | 亚洲第六页 | 精品视频在线一区 | 色网站免费在线观看 | 国模私拍av | 欧美成人激情 | 国产污视频在线 | 依人成人| 男人天堂aaa | 久久久无码18禁高潮喷水 | 亚洲成av人片在线观看 | 久久鲁视频 | 欧美亚洲在线 | 欧美涩涩涩 | 日本少妇喂奶 | 无码aⅴ精品一区二区三区浪潮 | www日本黄色 | 亚洲2022国产成人精品无码区 | 青青在线免费观看 | 9i精品福利一区二区三区 | 天天干夜操 | 熟女少妇精品一区二区 | 七月丁香婷婷 | 成人激情视频网站 | 香港三级韩国三级日本三级 | 裸体黄色片 | 精品国产乱码久久久久久婷婷 | 好吊视频在线观看 | 黄色的一级片 | 欧美日韩在线观看免费 | 加勒比久久综合 | 99热久久这里只有精品 | 六月丁香婷婷激情 | 久久春色| 免费在线看污片 | 精品影片一区二区入口 | 国产视频99| 亚洲一区av在线 | 色婷婷精品视频 | 一级片在线观看视频 | 欧美黑人欧美精品刺激 | jizz亚洲女人高潮大叫 | 亚洲精品国产乱伦 | 毛片网站免费在线观看 | 无码人妻精品一区二区三区夜夜嗨 | 极品淫少妇 | 日本在线视频二区 | 欧美日韩在线成人 | 欧美三级视频网站 | 日本高清久久 | 91亚洲精选 | 亚洲在线资源 | 日韩激情中文字幕 |