C++資料結構——棧
阿新 • • 發佈:2020-09-17
C++資料結構——棧
目錄
1、簡介
2、基本結構
3、基本操作
簡介
棧是限制插入和刪除只能在一個位置上進行的表,該位置是表的末端,叫做棧的頂,棧的特點是先進後出(後進先出)
基本結構
棧的基本結構如下圖
我們可以發現其實棧的結構圖橫過來看就是一張使用了頭插法的表,所以我們在建立時按照表的建立方法就行了
基本操作
棧的基本操作只有入棧和出棧兩個操作
棧的型別宣告
typedef struct node* Node;
struct node{
int Element;
Node next;
};
入棧
void push(Node head,int x){ Node temp=new node; temp->Element=x; temp->next=head->next; head->next=temp; }
出棧
void pop(Node head){
if(head->next){
Node temp=new node;
temp=head->next;
head->next=temp->next;
delete(temp);
}
}
這些操作與表那一節一模一樣,如果有不懂的可以看我之前的部落格
下面貼上完整程式碼
#include<iostream> using namespace std; typedef struct node* Node; struct node{ int Element; Node next; }; void push(Node head,int x){//傳入引數節點要是頭結點 Node temp=new node; temp->Element=x; temp->next=head->next; head->next=temp; } void pop(Node head){//傳入引數節點要是頭結點 if(head->next){ Node temp; temp=head->next; head->next=temp->next; delete(temp); } } void print(Node head){ while(head->next){ cout<<head->next->Element<<" "; head=head->next; } } //輸入五個數,入棧後出一次棧,然後輸出 int main(){ int x; Node head=new node; head->next=NULL; for(int i=0;i<5;i++){ cin>>x; push(head,x); } pop(head); print(head); return 0; }
有什麼遺漏或者錯誤,歡迎大家指出