PTA 6 7 在乙個陣列中實現兩個堆疊C語言詳解

2021-10-07 12:34:19 字數 1930 閱讀 1495

6-7 在乙個陣列中實現兩個堆疊 (20分)

題目出處

本題要求在乙個陣列中實現兩個堆疊。

函式介面定義:

stack createstack

(int maxsize )

;bool push

( stack s, elementtype x,

int tag )

;elementtype pop

( stack s,

int tag )

;

其中tag是堆疊編號,取1或2;maxsize堆疊陣列的規模;stack結構定義如下:

裁判測試程式樣例:

本blog已經把operation getop(); /* details omitted */補寫,且在主程式中注釋掉void printstack( stack s, int tag ); /* details omitted */

typedef

int position;

struct snode

;typedef

struct snode *stack;

注意:如果堆疊已滿,push函式必須輸出「stack full」並且返回false;如果某堆疊是空的,則pop函式必須輸出「stack tag empty」(其中tag是該堆疊的編號),並且返回error。

#include

#include

#include

#define error 1e8

typedef

int elementtype;

typedef

enum

operation;

typedef

enum

bool;

typedef

int position;

struct snode

;typedef

struct snode *stack;

stack createstack

(int maxsize )

;bool push

( stack s, elementtype x,

int tag )

;elementtype pop

( stack s,

int tag )

;operation getop()

;/* details omitted */

void

printstack

( stack s,

int tag )

;/* details omitted */

operation getop()

intmain()

}return0;

}

題解**

/* 你的**將被嵌在這裡 */

stack createstack

(int maxsize )

bool push

( stack s, elementtype x,

int tag )

else

if(tag==1)

else

}elementtype pop

( stack s,

int tag )

else

if(tag ==2&&

(s->top2)

== s->maxsize)

else

*/else

if(tag==2)

return s->data[

(s->top2)++]

;}}

PTA 6 7 在乙個陣列中實現兩個堆疊c語言

函式介面定義 stack createstack int maxsize bool push stack s,elementtype x,int tag elementtype pop stack s,int tag 其中tag是堆疊編號,取1或2 maxsize堆疊陣列的規模 stack結構定義如...

6 7 在乙個陣列中實現兩個堆疊

6 7 在乙個陣列中實現兩個堆疊 20 分 本題要求在乙個陣列中實現兩個堆疊。stack createstack int maxsize bool push stack s,elementtype x,int tag elementtype pop stack s,int tag 其中tag是堆疊編...

6 7 在乙個陣列中實現兩個堆疊

本題要求在乙個陣列中實現兩個堆疊。stack createstack int maxsize bool push stack s,elementtype x,int tag elementtype pop stack s,int tag 其中tag是堆疊編號,取1或2 maxsize堆疊陣列的規模 ...