數據結構代碼分享-5 鏈式棧

linkstack.c

#include<stdio.h>
#include<stdlib.h>
#include"linkstack.h"
//1.創建一個空的棧
void CreateEpLinkStack(linkstack_t **ptop)
{*ptop = NULL;
}
//2.入棧,ptop是傳入的棧針的地址,data是入棧的數據
int pushLinkStack(linkstack_t **ptop, datatype data)
{//創建新節點保存入站數據linkstack_t *penw = (linkstack_t *)malloc(sizeof(linkstack_t));if(penw == NULL){printf("pushLinkStack err\n");return -1;}//申請空間是為了存放data,并初始化penw->data = data;//插入penw->next = *ptop;*ptop = penw;return 0;
}
//3.判斷棧是否為空
int isEmptyLinkStack(linkstack_t *top)
{return top==NULL;
}
//4.出棧
datatype popLinkStack(linkstack_t **ptop)
{//linkstack_t *pdel = NULL;if(isEmptyLinkStack(*ptop)){printf("popLinkStack err\n");return -1;}pdel =*ptop;datatype data = pdel->data;(*ptop)=(*ptop)->next;free(pdel);pdel = NULL;}
//5.清空棧
void ClearLinkStack(linkstack_t **ptop)
{while(!isEmptyLinkStack(*ptop))popLinkStack(*ptop);
}
//6.求棧的長度
int LengthLinkStack(linkstack_t *top)
{int len=0;while(top!=NULL){len++;top=top->next;}return len;
}
//7.獲取棧頂數據,不是出棧,不需要移動main函數中的top,所以用一級指針
datatype getTopLinkStack(linkstack_t *top)
{if(isEmptyLinkStack(top)){return top->data;}else{return -1;}}
int main(int argc, char const *argv[])
{return 0;
}

linkstack.h

#ifndef __LINKSTACK_H__
#define __LINKSTACK_H__
typedef int datatype;
typedef struct linkstack
{datatype data;struct linkstack *next;
} linkstack_t;
//1.創建一個空的棧
void createEmptyLinkStack(linkstack_t **ptop);
//2.入棧,ptop是傳入的棧針的地址,data是入棧的數據
int pushLinkStack(linkstack_t **ptop, datatype data);
//3.判斷棧是否為空
int isEmptyLinkStack(linkstack_t *top);
//4.出棧
datatype popLinkStack(linkstack_t **ptop);
//5.清空棧
void clearLinkStack(linkstack_t **ptop);
//6.求棧的長度
int lengthLinkStack(linkstack_t *top);
//7.獲取棧頂數據,不是出棧,不需要移動main函數中的top,所以用一級指針
datatype getTopLinkStack(linkstack_t *top);
#endif

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

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

相關文章

數學建模Topsis法筆記

評價決策類-Topsis法學習筆記 問題的提出 生活中我們常常要進行評價&#xff0c;上一篇中的層次分析法&#xff0c;通過確定各指標的權重&#xff0c;來進行打分&#xff0c;但層次分析法決策層不能太多&#xff0c;而且構造判斷矩陣相對主觀。那有沒有別的方法呢&#xff1f…

石英加速度計為何成為行業標桿?

在石油鉆井、航空航天、工業自動化等領域&#xff0c;高精度、高可靠性的加速度測量至關重要。ER-QA-03F系列石英撓性加速度計憑借其卓越的性能和穩定的表現&#xff0c;成為靜態與動態測試的理想選擇。自2012年推出以來&#xff0c;該產品已交付數千臺&#xff0c;并在石油鉆井…

HP Pavilion G6 筆記本使用ventoy啟動安裝Ubuntu 22.04 桌面版

HP Pavilion G6 筆記本是很老的筆記本了&#xff0c;淘到一款&#xff0c;成色比較新&#xff0c;使用i5 3210 M cpu &#xff0c;內存是2G*2&#xff0c;正好手邊有一條4G內存條&#xff0c;替換一條后擴充為6G內存&#xff0c;感覺可以再戰10年&#xff01;&#xff08;當然6…

STM32G4 Park及反Park變換(二)實驗

目錄 一、STM32G4 Park及反Park變換(二)實驗 1 Park及反Park變換 1.1 代碼 1.2 上位機實驗結果 附學習參考網址 歡迎大家有問題評論交流 (* ^ ω ^) 一、STM32G4 Park及反Park變換(二)實驗 1 Park及反Park變換 本文介紹了基于STM32G4的Park及反Park變換實驗過程。主要內容…

pgsql 如何查詢今天范圍內的數據(當天0點0分0秒 - 當天23點59分59秒....)

使用 CURRENT_DATE 函數CURRENT_DATE 返回當前日期&#xff08;不含時間部分&#xff09;。當它在查詢中與 timestamp 字段比較時&#xff0c;會自動被視為當天的開始&#xff0c;即 YYYY-MM-DD 00:00:00。CURRENT_DATE INTERVAL 1 day 計算出第二天的開始時間&#xff0c;即 …

DRM驅動架構淺析-上(DRM基礎概要與U-Boot階段驅動解析)

一、背景 近期項目吃緊&#xff0c;接了不少調屏相關的需求&#xff0c;期間磕磕絆絆&#xff0c;但總算完成要求。回首過往&#xff0c;調試過多種屏幕&#xff0c;包括LVDS、EDP、MIPI、MI轉EDP或是轉LVDS、DP以及HDMI等常見屏。在Rockchip平臺調外設也有段時間矣&#xff0…

idea中如何設置文件的編碼格式

目錄 一、全局與項目編碼配置 二、新項目預配置 一、全局與項目編碼配置 File --> Settings --> Editor --> File Encodings Global Encoding&#xff1a;設置為UTF-8&#xff0c;影響IDE界面及新建文件的默認編碼。??Project Encoding&#xff1a;選擇UTF-8&am…

2025年5月架構設計師綜合知識真題回顧,附參考答案、解析及所涉知識點(六)

本文主要回顧2025年上半年(2025-5-24)系統架構設計師考試上午綜合知識科目的選擇題,同時附帶參考答案、解析和所涉知識點。 2025年5月架構設計師綜合知識真題回顧,附參考答案、解析及所涉知識點(一) 2025年5月架構設計師綜合知識真題回顧,附參考答案、解析及所涉知識點(…

Ubuntu22系統上源碼部署LLamaFactory+微調模型 教程【親測成功】

0.LLamaFactory LLaMA-Factory 是一個開源的低代碼大模型訓練與微調框架&#xff0c;旨在簡化大規模語言模型&#xff08;LLM&#xff09;的微調、評估和部署流程&#xff0c;幫助開發者和研究人員更高效地定制和優化模型。 1.安裝部署 1.1克隆倉庫 git clone --depth 1 ht…

打靶日常-sql注入(手工+sqlmap)

小知識: 注入點:在哪里輸入sgl指令中的參數 執行點:在那個頁面拼接sql指令并發送給數據庫執行 回顯點:執行的結果顯示在哪個頁面 sqlmap知識點: 輸出等級 -v3 范圍0-6 默認1 一般3 考試3 測試等級 --level=1 范圍…

繞過服務端文件上傳檢測:黑名單繞過技術與實戰

繞過服務端文件上傳檢測&#xff1a;黑名單繞過技術與實戰文件上傳漏洞是Web安全中常見且危害極大的漏洞類型之一&#xff0c;而黑名單機制是最基礎的防御手段。本文將深入探討三種經典的黑名單繞過技術&#xff0c;并提供實戰案例與防御方案。引言 文件上傳功能是現代Web應用的…

在職老D滲透日記day21:sqli-labs靶場通關(第27a關)get聯合注入 過濾select和union “閉合

5.27a.第27a關 get聯合注入 過濾select和union "閉合function blacklist($id) { $id preg_replace(/[\/\*]/,"", $id); //strip out /* $id preg_replace(/[--]/,"", $id); //Strip out --. $id preg_replace(/[#]/,"", $id); //Strip …

Git#cherry-pick

場景 項目里有多個分支&#xff0c;在某個分支commit內容想要應用到當前分支 命令 git cherry-pick --helpgit cherry-pick commit-ish&#xff1a;某個其他分支的commit應用到當前所在分支 (默認自動提交)git cherry-pick -n commit-ish&#xff1a;–no-commit(不自動提交)&a…

極海APM32F107V6 gpio模擬串口

一、原理部分 之前用外設都是直接用的硬件自帶的庫&#xff0c;雖然以前有學過原理和時序&#xff0c;但是因為工作其實也很少會有需要gpio模擬串口的情況&#xff0c;但總會有串口用完&#xff0c;但是需要一個類似打印串口的情況。今天也是開整&#xff0c;然后用硬件的庫對…

【數據可視化-94】2025 亞洲杯總決賽數據可視化分析:澳大利亞隊 vs 中國隊

&#x1f9d1; 博主簡介&#xff1a;曾任某智慧城市類企業算法總監&#xff0c;目前在美國市場的物流公司從事高級算法工程師一職&#xff0c;深耕人工智能領域&#xff0c;精通python數據挖掘、可視化、機器學習等&#xff0c;發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

鏈表基本運算詳解:查找、插入、刪除及特殊鏈表

在上一篇文章中&#xff0c;我們介紹了線性表的基本概念和順序存儲。本文將深入探討單鏈表的基本運算&#xff0c;并介紹循環鏈表和雙向鏈表這兩種特殊的鏈表結構&#xff0c;幫助讀者全面掌握鏈表的操作技巧。 文章目錄1.單鏈表基本運算鏈表的查找操作按序號查找按值查找鏈表的…

8.19作業

1.聊天室1.1服務器#include <myhead.h> #define SER_PORT 8888 #define SER_IP "192.168.174.128"struct msg {char type;char usrname[20];char msgtext[1024]; };int main(int argc, const char *argv[]) {int sfd socket(AF_INET,SOCK_STREAM,0);if (sfd-1…

95、23種設計模式之建造者模式(4/23)

建造者模式&#xff08;Builder Pattern&#xff09;是23種經典設計模式中的創建型模式之一&#xff0c;其核心思想是將復雜對象的構建過程與其表示分離&#xff0c;使得同樣的構建流程可以生成不同結構或配置的對象。以下從定義、結構、應用場景、優缺點及代碼示例展開分析&am…

LIA-X - 一張照片生成任意表情肖像動畫視頻 精準操控面部動作 支持50系顯卡 一鍵整合包下載

LIA-X 是一個可解釋的潛在肖像動畫生成器&#xff0c;只需要一張照片加一段驅動視頻生成任意表情肖像動畫&#xff0c; 旨在將驅動視頻中的面部動態精細地轉移到源肖像上&#xff0c;同時提供對頭部、嘴巴和眼睛的精細控制。同時支持圖像和視頻的編輯任務&#xff0c;比如對頭部…

Google 的 Opal:重新定義自動化的 AI 平臺

1. 真實世界測試&#xff1a;結果出乎意料 我讓 Opal 接受了三項極具挑戰性的任務&#xff1a; 1.1. 博客生成器挑戰 我的提示&#xff1a;“研究并撰寫一篇關于 2 億美元融資對無代碼&#xff08;no-code&#xff09;影響的文章。” 發生了什么&#xff1a;Opal 不僅僅是寫…