資料結構的鏈棧基本操作

2021-08-07 23:59:28 字數 2620 閱讀 3296

本程式主要是實現

建立空棧、 進棧、 出棧、 清空棧、 判空、 取棧頂元素、 取棧底元素、

獲取棧元素長度、 銷毀

#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就作為棧...