棧的順序儲存結構的改進寫法

2021-10-09 04:29:04 字數 2570 閱讀 4117

adt 棧(stack)

data

同線性表。元素具有相同地方型別,相鄰的元素具有前驅和後繼關係

operation

initstack(*s):初始化操作,建立乙個空棧s

destroystack(*s):若棧存在,則銷毀他

clearstack(*s):將棧清空

stackempty(s):若棧為空,返回true。否則返回false

gettop(s,*e)

;若棧存在且非空,用e返回s的棧頂元素

push(*s,e):若棧s存在,插入新元素e到棧s中並成為棧頂元素

pop(*s,*e):刪除棧s存在中棧頂的元素,並用e返回其值

stacklength(s):返回棧s的元素個數

endadt

test.hpp

#ifndef test_h_

#define test_h_

#include

"malloc.h"

#define maxsize 100

#define stackincrement 10

typedef

int selemtype;

typedef

struct

sqstack;

//initstack(*s):初始化操作,建立乙個空棧s

sqstack *

initstack()

;//destroystack(*s):若棧存在,則銷毀他

void

destroystack

(sqstack * s)

;//clearstack(*s):將棧清空

void

clearstack

(sqstack * s)

;//stackempty(s):若棧為空,返回true。否則返回false

bool

stackempty

(const sqstack s)

;//stacklength(s):返回棧s的元素個數

intstacklength

(const sqstack s)

;//gettop(s,*e);若棧存在且非空,用e返回s的棧頂元素

selemtype gettop

(sqstack s)

;//push(*s,e):若棧s存在,插入新元素e到棧s中並成為棧頂元素

void

push

(sqstack * s,

const selemtype e)

;//pop(*s,*e):刪除棧s存在中棧頂的元素,並用e返回其值

void

pop(sqstack * s)

;#endif

// !test_h_

#pragma once

test.cpp

#include

"test.h"

//initstack(*s):初始化操作,建立乙個空棧s

sqstack *

initstack()

//destroystack(*s):若棧存在,則銷毀

void

destroystack

(sqstack * s)

//clearstack(*s):將棧清空

void

clearstack

(sqstack * s)

}//stackempty(s):若棧為空,返回true。否則返回false

bool

stackempty

(const sqstack s)

//stacklength(s):返回棧s的元素個數

intstacklength

(const sqstack s)

//gettop(s,*e);若棧存在且非空,用e返回s的棧頂元素

selemtype gettop

(sqstack s)

//push(*s,e):若棧s存在,插入新元素e到棧s中並成為棧頂元素

void

push

(sqstack * s,

const selemtype e)

*(s-

>top)

= e;

++s-

>top;

}//pop(*s,*e):刪除棧s存在中棧頂的元素,並用e返回其值

void

pop(sqstack * s)

main.cpp

#include

#include

"test.h"

void

showstack

(sqstack s)

;int

main()

void

showstack

(sqstack s)

while

(s.base != s.top)

; std::cout <<

*s.top << std::endl;

}

棧的順序儲存結構

標頭檔案 函式的宣告 include include include define stacksize 100 typedef int elemtype typedef struct seqstack void initstack seqstack s 初始化棧 int stackempty seq...

棧的順序儲存結構

include include define maxsize 10 typedef struct stack sqstack,sq 棧的初始化,建立乙個空棧 sq inistack intpush sq s,int e void printf sq s while i s top 刪除棧頂元素,並用...

棧的順序儲存結構

棧是一種限定僅在表尾進行插入或刪除操作的線性表。允許插入或刪除的一端為棧頂,另一端為棧底。特點是先進後出 first in last out 棧的插入操作叫做入棧,棧的刪除操作叫做出棧。c語言 入棧 int push stack s elemtype e s top s data s top e r...