【考研復習】24王道數據結構課后習題代碼|第3章棧與隊列

文章目錄

  • 3.1 棧
  • 3.2 隊列
  • 3.3 棧和隊列的應用

3.1 棧

在這里插入圖片描述

int symmetry(linklist L,int n){char s[n/2];lnode *p=L->next;int i;for(i=0;i<n/2;i++){s[i]=p->data;p=p->next;}i--;if(n%2==1) p=p->next;while(p&&s[i]==p->data){i--;p=p->next;}if(i==-1) return 1;else return 0;
}

在這里插入圖片描述

typedef struct {int stack[Max];int top[2];
}stk;
stk s;
int push(int i, int x){if(i<0||i>1){cout<<"no stack"<<endl;return -1;}if(s.top[1]-s.top[0]==1){cout<<"full stack"<<endl;return -1;}switch (i){case 0:s.stack[++s.top[0]]=x; return 1;break;case 1:s.stack[++s.top[1]]=x; return 1;break;}
}
int pop(int i){if(i<0||i>1){cout<<"no stack"<<endl;return -1;}switch (i){case 0:if(s.top[0]==-1){cout<<"empty stack"<<endl;return -1;}else{return s.stack[s.top[0]--];}break;case 1:if(s.top[0]==Max){cout<<"empty stack"<<endl;return -1;}else{return s.stack[s.top[1]--];}break;}
}

3.2 隊列

在這里插入圖片描述

#define Maxsize 10
typedef struct{int data[Maxsize];int rear,front,tag;
}SqQueue;
int EnQueue(SqQueue &Q, int x){if(Q.front==Q.rear&&Q.tag==1) return 0; //隊列滿了Q.data[Q.rear]=x;Q.rear=(Q.rear+1)%Maxsize;Q.tag=1;return 1;
}
int DeQueue(SqQueue &Q, int x){if(Q.front==Q.rear&&Q.tag==0) return 0; //隊空x=Q.data[Q.front];Q.front=(Q.front+1)%Maxsize;Q.tag=0;return 1;
}

在這里插入圖片描述
偽代碼

void inverse(stack &s, queue &q){while(!queueempty(q)){x=dequeue(q);push(s,x);}while(!stackempty(s)){pop(s,x);enqueue(q,x);}
}

在這里插入圖片描述

int enqueue(stack &s1, stack &s2, int e){if(!(stackoverflow(s1))){push(s1,e);return 1;}if(stackoverflow(s1)&&!(stackempty(s2))){cout<<" stack is overflow. "<<endl;return 0;}if(stackoverflow(s1)&&stackempty(s2)){while(!(stackempty(s1))){pop(s1,x);push(s2,x);}}push(s1,e);return 1;
}
void dequeue(stack &s1,stack &s2, int &x){if(!stackempty(s2)){pop(s2,x);}else if(stackempty(s1)){cout<<" stack is empty"<<endl;}else{while(!stackempty(s1)){pop(s1,x);push(s2,x);}pop(s2,x);}
}
int queueempty(stack s1,stack s2){if(stackempty(s1)&&stackempty(s2)){return 1;}else return 0;
}

在這里插入圖片描述

3.3 棧和隊列的應用

在這里插入圖片描述

#include <iostream>
#include <stack>
using namespace std;
bool check(char str[]){stack <char> sck; int i=0;char temp;while(str[i]!='\0'){if(str[i]=='('||str[i]=='{'||str[i]=='[') {sck.push(str[i]);break;}else if(str[i]==']'){temp = sck.top();sck.pop();if(temp!='[') return false;}else if(str[i]==')'){temp = sck.top();sck.pop();if(temp!='(') return false;}else if(str[i]=='}'){temp = sck.top();sck.pop();if(temp!='{') return false;}}if(sck.empty()) return true;return false;
}
int main(){char *str=(char*)"()[](}{}()";cout<<str<<endl;if(!check(str)) cout<<"no !!"<<endl;else cout<<"yes!!1"<<endl;return 0;}

在這里插入圖片描述

#include <iostream>
#include <stack>
using namespace std;
void train_arrange(char *train){stack <char> sck;char *p=train,*q=train,t;while(*p){if(*p=='H') {sck.push(*p);}else{*(q++)=*p;}p++;}while (!sck.empty()){t = sck.top();sck.pop();*(q++)=t;}}
int main()
{char str[11]="HSHSHHHSHS";train_arrange(str);cout<<str<<endl;return 0;
} // namespace std;

在這里插入圖片描述
在這里插入圖片描述

#include <iostream>
#define maxsize 100
using namespace std;
double p(int n, double x){struct stack{int no;double val;}st[maxsize];int top=-1,i;double fv1=1,fv2=2*x;for(i=n;i>=2;i--){top++;st[top].no=i;}while(top>0){st[top].val=2*x*fv2-2*(st[top].no-1)*fv1;fv1=fv2;fv2=st[top].val;top--;}if(n==0){return fv1;}return fv2;
}
int main(){
double ans1=p(1,1.9);cout<<ans1<<endl;
}

在這里插入圖片描述

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

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

相關文章

Python flask-restful 框架講解

1、簡介 Django 和 Flask 一直都是 Python 開發 Web 的首選&#xff0c;而 Flask 的微內核更適用于現在的云原生微服務框架。但是 Flask 只是一個微型的 Web 引擎&#xff0c;所以我們需要擴展 Flask 使其發揮出更強悍的功能。 python flask框架詳解&#xff1a;https://blog.…

sentinel簡單使用

核心demo&#xff1a; 1 引入依賴: <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-core</artifactId><version>1.8.0</version> </dependency>2 核心代碼&#xff1a; 3 限流保護代碼&#xff1a;…

【Megatron-DeepSpeed】張量并行工具代碼mpu詳解(四):張量并行版Embedding層及交叉熵的實現及測試

相關博客 【Megatron-DeepSpeed】張量并行工具代碼mpu詳解(四)&#xff1a;張量并行版Embedding層及交叉熵的實現及測試 【Megatron-DeepSpeed】張量并行工具代碼mpu詳解(三)&#xff1a;張量并行層的實現及測試 【Megatron-DeepSpeed】張量并行工具代碼mpu詳解(一)&#xff1a…

【HarmonyOS】@ohos.request 上傳下載的那些事兒

【關鍵字】 ohos.request、上傳下載? 【寫在前面】 在進行HarmonyOS應用開發時&#xff0c;可能需要進行上傳或下載文件功能開發&#xff0c;本文章主要進行上傳下載相關功能介紹和一些注意事項及FAQ。 【上傳開發步驟】 步驟1&#xff1a;上傳下載接口需要申請ohos.permis…

GitOps 與 DevOps:了解關鍵差異,為企業做出最佳選擇

在軟件開發領域&#xff0c;GitOps 和 DevOps 是加強協作和實現軟件交付流程自動化的重要技術。雖然這兩種模式都旨在提高軟件開發生命周期的效率&#xff0c;但它們的核心原則和實施方式卻各不相同。 本篇文章將幫助您了解 GitOps 和 DevOps 之間的差異、它們的工作流程&am…

新知識:Monkey 改進版之 App Crawler

原生Monkey 大家知道Monkey是Android平臺上進行壓力穩定性測試的工具&#xff0c;通過Monkey可以模擬用戶觸摸屏幕、滑動、按鍵等偽隨機用戶事件來對設備上的程序進行壓力測試。而原生的Android Monkey存在一些缺陷&#xff1a; 事件太過于隨機&#xff0c;測試有效性大打折扣…

【2023新教程】樹莓派4B開機啟動-樹莓派第一次啟動-樹莓派不使用顯示器啟動-樹莓派從購買到啟動一步一步完全版!

背景 閑來無事&#xff0c;在咸魚上買了一個樹莓派4B。買來配件都十分齊全&#xff0c;于是就想著啟動來測試一下。下面是樹莓派無顯示器第一次啟動的全過程&#xff0c;包含安裝系統。 網上的教程大多需要額外使用顯示器、鼠標、鍵盤之類的外設。然而&#xff0c;樹莓派本身就…

從一到無窮大 #10 討論 Apache IoTDB 大綜述中看到的優勢和不足點

本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。 本作品 (李兆龍 博文, 由 李兆龍 創作)&#xff0c;由 李兆龍 確認&#xff0c;轉載請注明版權。 文章目錄 引言問題定義新技術數據模型schemalessTsfile設計雙MemTable高級可擴展查詢其他 IotD…

免費開源的多種人工智能項目,比如:訓練一個模型,讓人工智能玩王者榮耀

免費開源的多種人工智能項目&#xff0c;比如&#xff1a;訓練一個模型&#xff0c;讓人工智能玩王者榮耀。 全文大綱 PULSE - 該開源項目可以通過給圖片增加像素點來實現去馬賽克或高清化。 Depix - 給打了馬賽克的文字去碼。 TecoGAN - 給視頻去馬賽克或者進行超分辨率。 Sk…

計算機網絡-專業術語

計算機網絡-專業術語 實體 實體:任何可發送或接收信息的硬件或軟件進程 對等實體:收發雙方相同層次中的實體 協議 控制兩個對等實體進行邏輯通信的規則的集合 協議三要素 語法 定義所交換的信息的格式 是用戶數據與控制信息的結構和格式 語義 定義收發雙方所需要完成的操作…

go 切換代理

常用 $ go env -w GO111MODULEon $ go env -w GOPROXYhttps://goproxy.cn,direct 切換成阿里云 go env -w GOPROXYhttps://mirrors.aliyun.com/goproxy/,direct 很多需要切換到阿里云才行 刪除 $ go env -u GOPROXY 查看 $ go env 或者 go env list go get 出錯的時候 …

Kotlin 基礎教程一

Kotlin 基本數據類型 Java | Kotlin byte Byte short Short int Int long Long float Float double Double boolean Boolean c…

一 、個性化電商廣告推薦系統介紹

一 個性化電商廣告推薦系統介紹 1.1 數據集介紹 Ali_Display_Ad_Click是阿里巴巴提供的一個淘寶展示廣告點擊率預估數據集 數據集來源&#xff1a;天池競賽 原始樣本骨架raw_sample 淘寶網站中隨機抽樣了114萬用戶8天內的廣告展示/點擊日志&#xff08;2600萬條記錄&#xff…

LangChain-ChatGLM在WIndows10下的部署

LangChain-ChatGLM在WIndows10下的部署 參考資料 1、LangChain ChatGLM2-6B 搭建個人專屬知識庫中的LangChain ChatGLM2-6B 構建知識庫這一節&#xff1a;基本的邏輯和步驟是對的&#xff0c;但要根據Windows和現狀做很多調整。 2、沒有動過model_config.py中的“LORA_MOD…

validation之自定義注解@Constraint

前言&#xff1a; 首先&#xff0c;接口參數校驗應該都不陌生&#xff0c;大部分應該都會借助javax.validation進行快捷校驗&#xff0c;一般都是在入參字段上添加NotNull、NotEmpty等&#xff0c;對于一些特殊的入參校驗邏輯&#xff0c;可能不是很適用&#xff0c;現在介紹一…

【ECMAScript】ES6-ES11學習筆記

文章目錄 注意事項1.聲明變量2.定義常量3.解構賦值4.模板字符串5.簡化對象寫法6.箭頭函數7.參數默認值8.rest參數9.擴展運算符10.Symbol11.生成器函數12.Promise基本語法13.集合set14.Map15.類class16.數值擴展17.對象私有屬性18.對象方法擴展19.js文件模塊化20.async和await21…

數據庫操作不再困難,MyBatis動態Sql標簽解析

系列文章目錄 MyBatis緩存原理 Mybatis的CachingExecutor與二級緩存 Mybatis plugin 的使用及原理 MyBatis四大組件Executor、StatementHandler、ParameterHandler、ResultSetHandler 詳解 MyBatisSpringboot 啟動到SQL執行全流程 數據庫操作不再困難&#xff0c;MyBatis動態S…

Neo4j之MATCH基礎

1】基本匹配和返回&#xff1a;查找所有節點和關系&#xff0c;返回節點的標簽和屬性。 MATCH (n) RETURN n;2】條件篩選&#xff1a;查找所有名為 "Alice" 的人物節點。 MATCH (person:Person {name: Alice}) RETURN person;3】關系查詢&#xff1a;查找所有和 &q…

Centos7.6 安裝mysql過程全記錄

在centos 7.6上 離線安裝mysql 的步驟&#xff0c;可參考下文&#xff1a; 一、查看當前MySQL的安裝情況并卸載 1. 查看當前MySQL的安裝情況 查找之前是否安裝了MySQL rpm -qa|grep -i mysql 2.卸載mysql 如果已經安裝mysql&#xff0c;則需要先停止MySQL&#xff0c;再刪除…

YOLOv5、YOLOv8改進:MobileViT:輕量通用且適合移動端的視覺Transformer

MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer 論文&#xff1a;https://arxiv.org/abs/2110.02178 1簡介 MobileviT是一個用于移動設備的輕量級通用可視化Transformer&#xff0c;據作者介紹&#xff0c;這是第一次基于輕量級CNN網絡性…