//Q是一個隊列,S是一個空棧,實現將隊列中的元素逆置的算法。

#include<stdio.h>
#include<stdbool.h>
#include<stdlib.h>
#define Size 6
typedef struct SqNode//隊列結點
{
int data;
struct SqNode* next;
}LinkNode;
typedef struct SqQueue//隊列
{
LinkNode* front, * rear; //頭指針和尾指針
}LinkQueue;
typedef struct LinkStack//棧
{
int data;
struct LinkStack* next;
}LinkStack;
void InitQueue(LinkQueue* Q)//假設用帶頭結點的鏈表來表示隊列
{
Q->front = Q->rear = (LinkNode*)malloc(sizeof(LinkNode));
if (Q->front == NULL)//分配失敗
return;
Q->rear->next = NULL;
return;
}
void InitStack(LinkStack** S)//用不帶頭結點的鏈表來表示棧,&S表示當前是指向鏈表指針的指針,所以要用形參要用二級指針
{
*S = NULL;
return;
}
bool EnQueue(LinkQueue* Q, int x)//入隊
{
//無需判斷滿隊
LinkNode* s = (LinkNode*)malloc(sizeof(LinkNode));
if (s == NULL)//分配失敗
return false;
s->data = x;
s->next = NULL;
Q->rear->next = s;
Q->rear = s;
return true;
}
bool Push(LinkStack** S, int x)//進棧
{
//無需判斷是否滿棧
//第一次入棧
if ((*S) == NULL)
{
LinkStack* p = (LinkStack*)malloc(sizeof(LinkStack));
if (p == NULL)//分配失敗
return false;
p->data = x;
p->next = NULL;
(*S) = p;
}
//后續入棧
else?
{
LinkStack* q = (LinkStack*)malloc(sizeof(LinkStack));
if (q == NULL)//分配失敗
return false;
q->data = x;
q->next = (*S);
(*S) = q;
}
return true;
}
int* DeQueue(LinkQueue* Q, int* x)//出隊
{
if (Q->front == Q->rear)//空隊
return NULL;
LinkNode* p = Q->front->next;
if (p == Q->rear)//恰好有一個元素
{
*x = p->data;
Q->front->next = NULL;
free(p);
Q->rear = Q->front;
return x;
}
*x = p->data;
Q->front->next = p->next;
free(p);
return x;
}
bool PrintList(LinkQueue Q)//打印隊列
{
LinkNode* p = Q.front->next;
while (p != NULL)
{
printf("%d ", p->data);
p = p->next;
}
printf("\n");
return true;
}
bool PrintStack(LinkStack* S)//打印棧
{
LinkStack* p = S;
if (p == NULL)//空棧
return false;
while (p != NULL)
{
printf("%d ", p->data);
p = p->next;
}
printf("\n");
return true;
}
int main()
{
int arr[Size] = { 1,2,3,4,5,6 };//假設要輸入1,2,3,4,5,6
LinkQueue Q;//定義一個隊列
LinkStack* S;//定義一個棧
InitQueue(&Q);//初始化隊列
InitStack(&S);//初始化棧

?? ?int i;
for(i = 0;i < Size;i++)
EnQueue(&Q,arr[i]);//入隊

?? ?int* j;
for (i = 0; i < Size; i++)
{
j = DeQueue(&Q, &arr[i]);//出隊
Push(&S, *j);//進棧
}

?? ?//PrintList(Q);//隊列打印測試
PrintStack(S);//棧打印測試
return 0;
}

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

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

相關文章

畢馬威 —— 公眾對人工智能的信任、態度及使用情況調查

文章目錄 前言 一、背景介紹 二、對人工智能的信任與接受度 三、人工智能的使用與認知情況 四、人工智能的益處與風險 五、人工智能的監管與治理 六、工作場所的人工智能應用 七、人工智能對工作的影響 八、學生對人工智能的應用 九、核心啟示 1.新興經濟體在公眾與員工人工智能…

基于Spring Session + Redis + JWT的單點登錄實現

實現思路 用戶訪問受保護資源時&#xff0c;若未認證則重定向到認證中心認證中心驗證用戶身份&#xff0c;生成JWT令牌并存儲到Redis認證中心重定向回原應用并攜帶令牌應用驗證JWT有效性并從Redis獲取會話信息用戶在其他應用訪問時&#xff0c;通過相同機制實現單點登錄 代碼…

微服務Eureka組件的介紹、安裝、使用

微服務 Eureka 組件的介紹、安裝與使用詳解 在微服務架構中&#xff0c;服務注冊與發現是至關重要的一環&#xff0c;而 Eureka 作為 Netflix 開源的服務注冊中心&#xff0c;廣泛應用于 Spring Cloud 微服務體系中。本文將帶你全面了解 Eureka 的概念、安裝及在 Spring Boot …

【PostgreSQL內核學習:通過 ExprState 提升哈希聚合與子計劃執行效率(一)】

PostgreSQL內核學習&#xff1a;通過 ExprState 提升哈希聚合與子計劃執行效率&#xff08;一&#xff09;引言背景補丁的意義補丁概述JIT & LLVM實際例子&#xff08;以 PostgreSQL 為例&#xff09;提交信息提交描述引入 ExprState 進行哈希計算&#xff1a;支持 JIT 編譯…

web端播放flv視頻流demo(flv.js的使用)

需求&#xff1a;原本是需要前端播放RTMP視頻流的&#xff0c;但是現在的瀏覽器都不支持flash插件了&#xff0c;讓用戶安裝flash插件也不現實&#xff0c;所以直接讓后端將RTMP視頻流轉換成flv視頻流給到前端進行播放。 直接上demo&#xff0c;直接就能播放&#xff0c;如果遇…

【拍攝學習記錄】04-拍攝模式/曝光組合

曝光組合全自動半自動光圈優先手動擋【固定物體長時間不變時候、閃光燈時候、】手機上的光學變焦與數碼變焦是不同的&#xff0c;使用檔位推薦可以提升畫質。手機夜景模式長曝光【車流軌跡、星軌】HDR 大光比【日落時候使用】專業模式&#xff0c;【感光度iso、快門可以調節】…

新liunx部署mysql過程問題

首先看下是什么發行版 cat /etc/os-release CentOS Linux 7 ################################## 使用 yum下載包 發現不行 源不行 那就換成阿里的 # 進入 yum 源配置目錄 cd /etc/yum.repos.d/ # 備份所有默認 repo 文件&#xff08;以 CentOS 為例&#xff0c;其他系統…

Python 第三方庫:Beautiful Soup(HTML/XML 解釋提取)

Beautiful Soup 是一個 用于從 HTML 和 XML 文件中提取數據的 Python 第三方庫。它為復雜的網頁結構提供了簡單易用的解析接口&#xff0c;尤其適合網頁爬蟲和數據提取任務。Beautiful Soup 提供樹型結構訪問、標簽搜索、屬性提取等功能&#xff0c;并支持多種解析器&#xff0…

使用STM32CubeMX使用CAN驅動無刷電機DJI3508

簡介 文章為筆記性質 硬件包括 大疆C板 電機調速器C620 DJI3508電機 CAN知識介紹 CAN的概念 CAN是控制器區域網絡&#xff08;Controller Area Network&#xff09;的縮寫。CAN總線是一種適用于工業設備的高性能總線網絡。說白了就是也就是一種通訊方式而已。 把多個設…

Wi-Fi 802.11s自組網/EasyMesh自組網/802.11ah物聯網

一、前期調研結論 前面詳細探討了自組網和5G無線通信網絡、WiFi無線通信網絡的差異&#xff1a; 自組網 v.s 5G v.s WiFi-CSDN博客 從“分級道路”角度理解無線通信網絡拓撲包括從當前工業應用場景具體案例了解終端無線通信網絡&#xff1a; 5G無線通信網絡場景&#xff08;…

【基于hyperledger fabric的教育證書管理系統】

教育證書管理系統 系統概述 項目背景 隨著數字化轉型的深入推進&#xff0c;教育證書作為個人學術成就和專業資質的重要憑證&#xff0c;在就業市場、高等教育和職業發展中扮演著關鍵角色。然而&#xff0c;傳統教育證書管理體系面臨著數據孤島、證書偽造、驗證流程繁瑣以及跨機…

【Flask】測試平臺開發,集成禪道

概述&#xff1a; 由于公司多數測試人員還是在使用禪道&#xff0c;為了方便&#xff0c;就將禪道直接集成在我們的測試平臺中 一般可以有幾種實現方法 調用禪道的API集成集成本地部署的禪道-可能有跨域問題&#xff0c;需要解決 由于我這里已經部署了一臺本地的禪道系統&…

《UE5_C++多人TPS完整教程》學習筆記45 ——《P46 待機與跳躍(Idle And Jumps)》

本文為B站系列教學視頻 《UE5_C多人TPS完整教程》 —— 《P46 待機與跳躍&#xff08;Idle And Jumps&#xff09;》 的學習筆記&#xff0c;該系列教學視頻為計算機工程師、程序員、游戲開發者、作家&#xff08;Engineer, Programmer, Game Developer, Author&#xff09; St…

用html+js下拉菜單的demo,當鼠標點擊后展開,鼠標點擊別的地方后折疊

使用html js實現下拉菜單demo&#xff0c;因為copy的網站菜單功能失效&#xff0c;就需要自己寫一個邏輯&#xff0c;點擊其他區域折疊菜單&#xff0c;可以參考&#xff1a;<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF…

OpenCV 核心技術:顏色檢測與幾何變換實戰

在計算機視覺任務中&#xff0c;顏色空間轉換和圖像幾何變換是兩大基礎且高頻的操作 —— 前者用于精準分割特定顏色目標&#xff08;如交通信號燈、物體追蹤&#xff09;&#xff0c;后者用于調整圖像的尺寸、位置和視角&#xff08;如文檔矯正、圖像拼接&#xff09;。本文將…

[HFCTF2020]EasyLogin

文章目錄TRYWP總結TRY 注冊admin報錯username wrong。 隨便注冊一個用戶點擊GetFlag&#xff0c;permission deny。 猜測可能是需要admin權限。 看cookie發現有&#xff1a; sses:aok&#xff1a;eyJ1c2VybmFtZSI6ImEiLCJfZXhwaXJlIjoxNzU2NDU1NjczMTAxLCJfbWF4QWdlIjo4NjQwM…

Java接口和抽象類的區別,并舉例說明

Java接口和抽象類是面向對象編程中實現抽象的兩種機制&#xff0c;它們在語法、設計目的和使用場景上有顯著區別&#xff1a;一、核心區別?定義方式?抽象類&#xff1a;使用abstract class聲明&#xff0c;可包含抽象方法和具體方法45。接口&#xff1a;使用interface聲明&am…

docker-相關筆記

1: 導入鏡像 docker load -i myimage.tar# 導出鏡像 docker save myimage:latest > myimage.tar # 導入鏡像 docker load -i myimage.tardocker load -i <文件> 功能&#xff1a;用于導入通過 docker save 命令導出的鏡像歸檔文件&#xff08;通常是 .tar 格式&#…

自然語言提取PDF表格數據

自然語言提取PDF表格數據PDF v8.2的文檔解決方案與OpenAI實現了無縫的AI集成&#xff0c;可將非結構化PDF轉換為可用數據。MESCIUS 推出的 PDF 文檔解決方案 (DsPdf) 是一款軟件開發工具包&#xff0c;它提供了 .NET Core 庫和一個 JavaScript PDF 查看器&#xff0c;用于處理和…

飛牛Nas每天定時加密數據備份到網盤,基于restic的Backrest筆記分享

1. 前言 受前輩“RAID≠備份”的經驗&#xff0c;也考慮到硬盤故障時 RAID 重建步驟繁瑣&#xff0c;我干脆放棄陣列&#xff0c;直接單盤運行。 重要數據則加密后上傳至大廠云盤&#xff1a;一方面文件對外不可讀&#xff0c;規避掃描和諧&#xff1b;另一方面依靠大廠的數據安…