資料結構 順序棧

2021-08-03 05:41:21 字數 1507 閱讀 3251

/*

* 構造乙個順序棧(當輸入9999時,結束入棧操作),輸出棧中元素,顯示棧頂元素,刪除棧頂元素

*/#include

#include

#include

#define stack_init_size 100

#define ok 1

#define error 0

typedef

int selemtype;

//順序棧結構體

struct sqstack

; //1.初始化順序棧

int initstrack(sqstack &s)

s.top = s.base; //top初始為base,表示空棧

s.stacksize = stack_init_size; //棧的最大容量

return ok;

} //2.入棧

int push(sqstack &s,selemtype e)

delete s.base; //刪除原有棧的空間

s.base=newbase; //原有棧的棧底指標指向新棧空間

s.top=&s.base[s.stacksize]; //新棧棧頂元素的下乙個位置

s.stacksize *=2;

}//*s.top++ = e; //元素壓入棧中,指標s.top加加

*s.top=e;

s.top++;

return ok;

} //3.出棧

int pop(sqstack &s)

--s.top;

return ok;

} //4.取棧頂元素

selemtype gettop(sqstack s)

return

00;}

//5.列印,輸出

void print(sqstack s)

printf("\n");

}//主函式

int main(void)

push(s,x); //構造順序棧

} printf("the stack elems:");

print(s);

printf("1.入棧:");

scanf("%d",&x);

push(s,x);

printf("the stack elems:");

print(s);

y = gettop(s);

printf("2.取得棧頂元素:%d\n",y);

printf("3.出棧:\n");

pop(s);

printf("the stack elems:");

print(s);

}

資料結構 順序棧

編寫乙個程式,實現順序棧 假設棧中元素型別為char 的各種基本運算。並完成下面功能 1 初始化棧s 2 判斷棧s是否非空 3 依次進棧元素a,b,c,d,e 4 判斷棧s是否非空 5 輸出棧長度 6 輸出從棧頂到棧底元素 7 輸出出棧序列 8 判斷棧s是否非空 9 釋放棧。include incl...

資料結構 順序棧

棧是一種只能在一端進行插入或刪除操作的線性表。其中允許進行插入或刪除操作的一端稱為棧頂 top 棧頂是由乙個稱為棧頂指標的位置指示器來指示,它是動態變化的。表的另一端稱為棧底,棧底是固定不變的。先進後出 filo include include define maxsize 100 typedef ...

資料結構 順序棧

運算規則 只能在棧頂運算,且訪問結點時依照後進先出 lifo 或先進後出 filo 的原則 實現方式 最大空間 typedef int selemtype typedef int status typedef struct sqstack 順序棧初始化 status initstack sqstac...