採用鏈式儲存方式的棧稱為鏈棧或者鏈式棧。設定頭結點。並且一般top指向頭結點。
**實現:
linkstack.h
#pragma once
#include #include typedef char datatype;
typedef struct node
lstacknode,*linkstack;
//初始化
void initstack(linkstack *top)
(*top)->next = null;
}//判空
int stackempty(linkstack top)
//獲取棧頂元素
int gettop(linkstack top,datatype* e)
*e = p->data;
return 1;
}//在棧中插入元素
int pushstack(linkstack top,datatype e)
p->data = e;
p->next = top->next;
top->next = p; //成功返回1否則返回0
return 1;
}//彈出棧頂元素
int popstack(linkstack top,datatype *e)
top->next = p->next;
*e = p->data;
free(p);
return 1;
}//獲取棧長度
int stacklength(linkstack top)
return count;
}//清空棧
void clearstack(linkstack top)
}
test.c
#include #include #include "linkstack.h"
void main()
printf("元素出棧的序列是:");
while (!stackempty(s))
printf("\n");
}
鏈棧 棧的鏈式表示和實現
用鏈表示的棧的基本操作 include include define maxsize 1000 鍊錶的最大長度 define selemtype int define status int 棧的結構 typedef struct lstacklstack,lstacklist 初始化 status ...
棧的表示與實現
棧是指在標尾進行插入和刪除操作的線性表。按照後進先出的原則來訪問資料。先看其簡單實現 簡單的順序棧 includeusing namespace std define error 0 define ok 1 class sta 定義乙個棧類 int push int t 入棧 int pop int...
順序棧的表示與實現
說明 想要使用順序表實現棧,結構體中應包含棧頂和棧底的指標,同時需要指定棧的儲存單元大小 動態可變 其中棧底指標base用來動態分配棧的記憶體空間,棧頂指標top用來指定棧頂元素在順序棧中的位置。初始化時top bas etop base top ba se,表示棧中無元素,而後每壓入乙個新的元素,...