本程式主要是實現
建立空棧、 進棧、 出棧、 清空棧、 判空、 取棧頂元素、 取棧底元素、
獲取棧元素長度、 銷毀
#include#include#include"linkstack.h"
int main(void)
pushstack(mystack,100);
pushstack(mystack,200);
pushstack(mystack,300);
pushstack(mystack,400);
pushstack(mystack,500);
printf("len = %d\n",getlenth(mystack)); // 棧頂長度
gettop(mystack); // 棧頂元素
getbottom(mystack); // 棧底元素
clearstack(mystack); // 清空棧
while(false == stackempty(mystack))
return false;
}
#include#include#include"linkstack.h"
// 清空棧
int clearstack(linkstack s)
return ok;
}// 獲取棧的元素個數
int getlenth(linkstack s)
//printf("%d\n",len);
return len;
}// 獲取棧底元素
data_t getbottom(linkstack s)
printf("棧底元素 = %d\n",s->data);
return s->data;
}// 獲取棧頂元素
data_t gettop(linkstack s)
// 建立乙個空棧
linkstack createstack(void)
top->data = -1;
top->next = null;
return top;
}// 進棧
data_t pushstack(linkstack s,data_t val)
x->data = val;
//插入(先鏈後斷)
x->next = s->next; // 頭插法
s->next = x;
return false;
}// 判斷棧是否為空
int stackempty(linkstack s)
else
}// 出棧
data_t popstack(linkstack s)
linkstack d = s->next; //記錄刪除位置
data_t val = d->data; //取值
s->next = d->next; //刪除
free(d); //釋放
return val;
}// 銷毀
void destroy(linkstack s)
}
#ifndef _linkstack_h
#define _linkstack_h
#define true 1
#define false 0
#define error -1
#define ok 1
typedef int data_t;
struct node;
typedef struct node lnode;
typedef struct node *linkstack;
int clearstack(linkstack s); //清空棧
int getlenth(linkstack s); // 獲取棧的元素個數
data_t getbottom(linkstack s); // 棧底元素
data_t gettop(linkstack s); // 棧頂元素
linkstack createstack(void); // 建立空棧
data_t pushstack(linkstack s,data_t val); // 進棧
int stackempty(linkstack s); // 判斷棧是否為空
data_t popstack(linkstack s); // 出棧
void destroy(linkstack s); // 銷毀
#endif
資料結構鏈棧的基本操作的實現
2 演算法設計 五 實現 一 實驗目的 1 掌握棧的鏈式儲存結構 2 掌握棧的操作特性 3 掌握基於鏈棧的基本操作的實現方法。二 實驗內容 1 建立乙個空棧 2 對已建立的棧進行插入 刪除 取棧頂元素等基本操作。三 問題分析 棧 stack 是限定僅在表尾進行插入或刪除操作的線性表。對棧來說,表尾端...
資料結構 鏈棧的操作
1.malloc函式 要求返回位元組數,並且強制轉換為指標型別。2.是指標型別訪問用到的,而.是物件型別訪問得到的。3.記得count 包括 鏈棧結點的定義,鏈棧的定義,進棧,出棧。include include define maxsize 50 using namespace std typed...
資料結構 鏈棧的基本操作 C語言
棧的特點 先進後出。鏈棧 1 棧底即鍊錶的最後乙個結點,而棧頂總是鍊錶的第乙個結點。因此 新入棧元素即為鍊錶新的第乙個結點。2 乙個鏈棧可由棧頂指標top唯一確定。如下圖給出了鏈棧中元素與top的關係。3 採用帶頭節點的單鏈表實現棧。因為 鏈棧的插入和刪除僅在表頭位置進行,所以表頭指標top就作為棧...