13.7隊列的實戰(通過鏈表實現)

學個二叉樹,又要用上隊列的代碼,上學期學的隊列忘光光了,這不沒辦法回來復習咯

?代碼:

#include <stdio.h>
#include <stdlib.h>typedef int ElemType;
typedef struct LinkNode{ElemType data;struct LinkNode *next;
}LinkNode;
typedef struct{LinkNode *front,*rear;  //  鏈表頭,鏈表尾,也可以稱隊頭,隊尾
}LinkQueue; //先進先出//隊列的初始化,使用的是帶頭結點的鏈表來實現的
void InitQueue(LinkQueue &Q)
{Q.front=Q.rear= (LinkNode *)malloc(sizeof(LinkNode));Q.front->next=NULL;
}
//入隊
void EnQueue(LinkQueue &Q,ElemType x)
{LinkNode *s=(LinkNode *)malloc(sizeof(LinkNode));s->data=x;s->next=NULL;Q.rear->next=s; //rear始終指向尾部Q.rear=s;
}
//出隊    頭部刪除法
bool DeQueue(LinkQueue &Q,ElemType &x)
{if(Q.front==Q.rear)return false;   //隊列為空LinkNode *q=Q.front->next;  //頭結點什么都沒存,所以頭結點的下一個結點才有數據if(Q.rear==q){x=q->data;Q.rear=Q.front; //如果只有一個結點}else{x=q->data;Q.front->next=q->next;  //斷鏈}free(q);return true;
}
//通過鏈表來實現隊列
int main()
{LinkQueue Q;//入隊InitQueue(Q);   //初始化隊列EnQueue(Q,3);EnQueue(Q,4);EnQueue(Q,5);EnQueue(Q,6);EnQueue(Q,7);//出隊ElemType element;       //存儲出隊元素bool ret;ret= DeQueue(Q,element);if(ret)printf("DeQueue success,element=%d\n",element);elseprintf("Dequeue fail\n");return 0;
}

運行:

DeQueue success,element=3

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715331.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715331.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715331.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

動態規劃(算法競賽、藍橋杯)--樹形DP沒有上司的舞會

1、B站視頻鏈接&#xff1a;E17 樹形DP Luogu P1352 沒有上司的舞會_嗶哩嗶哩_bilibili 題目鏈接&#xff1a;沒有上司的舞會 - 洛谷 #include <bits/stdc.h> using namespace std; const int N6010; int n; int w[N]; vector<int>a[N];//鄰接表 bool fa[N]; int…

011 Linux_線程概念與創建

前言 本文將會向你介紹線程的概念&#xff0c;以及線程是怎么被創建的 線程概念 一、進程是承擔系統資源的基本實體&#xff0c;線程是cpu調度的基本單位 首先&#xff0c;地址空間在邏輯上相當于進程的資源窗口&#xff0c; 每個進程都有這樣一個資源窗口。通過地址空間頁…

工控傳感器選型原則及舉例說明

工控傳感器選型原則及舉例說明 前言選型原則知識儲備光電傳感器接近開關和行程開關磁性開關模擬量傳感器類型及使用范圍數字量傳感器類型及使用范圍 選型舉例食品包裝箱運輸過程中的檢測有無倉庫提升伺服的極限位檢測產品高度檢測 前言 這里僅以數字量和模擬量信號的傳感器舉例…

Vue源碼系列講解——實例方法篇【二】(事件相關方法)

目錄 0.前言 1. vm.$on 1.1 用法回顧 1.2 內部原理 2. vm.$emit 2.1 用法回顧 2.2 內部原理 3. vm.$off 3.1 用法回顧 3.2 內部原理 4. vm.$once 4.1 用法回顧 4.2 內部原理 0.前言 與事件相關的實例方法有4個&#xff0c;分別是vm.$on、vm.$emit、vm.$off和vm.$o…

前端面試知識點合集

原型和原型鏈 任何函數都可以作為構造函數。當該函數通過 new 關鍵字調用的時候&#xff0c;就稱之為構造函數。 var Parent function(){}//定義一個函數&#xff0c;那它只是一個普通的函數&#xff0c;不能稱它為構造函數var instance new Parent(); //這時這個Parent就不…

C#理論 —— WPF 應用程序Console 控制臺應用

文章目錄 1. WPF 應用程序1.1 工程創建1.2 控件1.2.1 控件的公共屬性1.2.1 TextBox 文本框1.2.1 Button 按鈕 *. Console 控制臺應用1.1 工程創建 1. WPF 應用程序 1.1 工程創建 Visual Studio 中新建項目 - 選擇WPF 應用程序&#xff1b; 1.2 控件 1.2.1 控件的公共屬性 …

如何備份和恢復MySQL數據庫?有哪些常見的備份工具和策略?

如何備份和恢復MySQL數據庫&#xff1f;有哪些常見的備份工具和策略&#xff1f; 在數據庫管理中&#xff0c;備份和恢復是非常重要的環節&#xff0c;它們保障了數據的安全性和可恢復性。對于MySQL這樣的關系型數據庫管理系統&#xff0c;了解并實施有效的備份策略至關重要。…

Linux網絡編程——網絡基礎

Linux網絡編程——網絡基礎 1. 網絡結構模式1.1 C/S 結構1.2 B/S 結構 2. MAC 地址3. IP地址3.1 簡介3.2 IP 地址編址方式 4. 端口4.1 簡介4.2 端口類型 5. 網絡模型5.1 OSI 七層參考模型5.2 TCP/IP 四層模型 6. 協議6.1 簡介6.2 常見協議6.3 UDP 協議6.4 TCP 協議6.5 IP 協議6…

【兔子機器人】根據自身機器人參數修改simulink模型

關節電機 機體初始高度 &#xff01;&#xff01;&#xff01;接下來嘗試修改各腿的坐標朝向

LeetCode54題:螺旋矩陣(python3)

路徑的長度即為矩陣中的元素數量&#xff0c;當路徑的長度達到矩陣中的元素數量時即為完整路徑&#xff0c;將該路徑返回。 循環打印&#xff1a; “從左向右、從上向下、從右向左、從下向上” 四個方向循環打印。 class Solution:def spiralOrder(self, matrix: List[List[i…

怎么對App進行功能測試

測試人員常被看作是bug的尋找者&#xff0c;但你曾想過他們實際是如何開展測試的嗎&#xff1f;你是否好奇他們究竟都做些什么&#xff0c;以及他們如何在一個典型的技術項目中體現價值&#xff1f;本文將帶你經歷測試人員的思維過程&#xff0c;探討他們測試app時的各種考慮. …

Android和Linux的嵌入式開發差異

最近開始投入Android的懷抱。說來慚愧&#xff0c;08年就聽說這東西&#xff0c;當時也有同事投入去看&#xff0c;因為惡心Java&#xff0c;始終對這玩意無感&#xff0c;沒想到現在不會這個嵌入式都快要沒法搞了。為了不中年失業&#xff0c;所以只能回過頭又來學。 首先還是…

虛擬內存與mmap,brk

虛擬內存與mmap,brk 基本概念及相關術語 1.1 基本概念 虛擬內存使得應用程序認為它擁有連續的可用的內存&#xff08;一個連續完整的地址空間&#xff09;&#xff0c;而實際上&#xff0c;它通常是被分隔成多個物理內存碎片&#xff0c;還有部分暫時存儲在外部磁盤存儲器上&…

【C語言】linux內核generic_xdp_tx

一、中文注釋 /* 在執行通用XDP時&#xff0c;我們必須繞過qdisc層和網絡挖掘點&#xff0c;* 以匹配驅動內XDP的行為。*/ void generic_xdp_tx(struct sk_buff *skb, struct bpf_prog *xdp_prog) {struct net_device *dev skb->dev; // 獲取skb對應的網絡設備struct netd…

面試高頻率問答題目

索引&#xff1a; 主鍵索引&#xff1a;表的id &#xff08;唯一 且 不能為空&#xff09; 唯一索引&#xff1a;表User 假設有account 字段 &#xff0c;用戶名不重復 &#xff08;唯一 可以為空&#xff09; 復合索引&#xff1a;where() 的條件 用戶名&#xff0c;密碼 …

MySQL:函數

提醒&#xff1a; 設定下面的語句是在數據庫名為 db_book里執行的。 創建user_info表 注意&#xff1a;pwd為密碼字段&#xff0c;這里使用了VARCHAR(128)類型&#xff0c;為了后面方便對比&#xff0c;開發項目里一般使用char(32)&#xff0c;SQL語句里使用MD5加密函數 USE db…

【博圖TIA-Api】通過Excel自動新建文件夾和導入FB塊

【博圖TIA-Api】通過Excel自動新建文件夾和導入FB塊 說明思路準備獲取Excel表格內文件名和FB塊名等信息新建文件夾部分篩分獲取的文件夾數據&#xff0c;去掉重復內容創建文件夾 導入FB塊導出FB塊的xml文件查找需要放置的文件夾導入塊 說明 續上一篇文章&#xff0c;這次是根據…

多線程 --- [ 線程池、線程安全、其他常見的鎖 ]

目錄 1. 線程池 模塊一&#xff1a;線程的封裝 模塊二&#xff1a;線程池的封裝 模塊三&#xff1a;互斥量的封裝 (RAII風格) 模塊四&#xff1a;任務的封裝 模塊五&#xff1a;日志的封裝 模塊六&#xff1a;時間的封裝 模塊六&#xff1a;主函數 模塊七&#xff1a…

備戰藍橋杯---狀態壓縮DP進階題1

我們來看一看一道比較難的問題&#xff08;十分十分的巧妙&#xff09;&#xff1a; 顯然我們應該一行一行放&#xff0c;又豎的會對下一行產生影響&#xff0c;我們令橫著放為0&#xff0c;豎著放的上方為1. 對于下一行&#xff0c;前一行放1的下面為0&#xff0c;但是會出現…

【Redis | 第九篇】一篇文章看懂Redis持久化機制

文章目錄 9.一篇文章看懂Redis持久化機制9.1Redis的兩種持久化機制9.1.1為什么有持久化&#xff1f; 9.2RDB機制9.2.1介紹9.2.2觸發機制&#xff08;1&#xff09;save命令觸發&#xff08;2&#xff09;bgsave命令觸發&#xff08;3&#xff09;自動觸發 9.2.3執行流程9.2.4優…