C 語言堆疊訪問問題,關於 C 堆疊的問題。 王牌晉級

發布 科技 2024-06-10
6個回答
  1. 匿名使用者2024-01-29

    程式已經修正,可以執行成功,希望kutpbpb能幫到你!

    #include

    #include

    #define maxsize 7

    #define false -1

    #define true 1

    #define ok 1

    #define error -1

    typedef int datatype;

    typedef struct node

    datatype data[maxsize];

    int top;

    seqstack;

    void push(seqstack *s,datatype x);

    void setnull(seqstack *s);

    int empty(seqstack *s);

    datatype pop(seqstack *s);

    int main()

    datatype e;

    seqstack *p;

    p=(seqstack*)malloc(sizeof(seqstack));

    int i,x;

    setnull(p);

    printf("please enter the number:");

    for(i=0;itop);

    empty(p);

    e=pop(p);

    printf("please print the pop value: %5d",e);

    return 0;

    void setnull(seqstack *s)s->top=-1;

    int empty(seqstack *s)if(s->top>=0)

    return false;

    elsereturn true;

    void push(seqstack *s,datatype x)if(s->top==maxsize-1)printf("overflow");

    elses->top++;

    s->data[s->top]=x;

    datatype pop(seqstack *s)datatype e;

    if(empty(s)!=-1)這裡應該是乙個不等號;

    printf("underflow");

    return null;

    elsee=s->data[s->top];

    s->top--;在這裡,它應該首先儲存,然後減去;

    return e;

    地圖。 此資料在地圖上為**,最終結果以地圖上的最新資料為準。

  2. 匿名使用者2024-01-28

    修改以下更改:包括

    #include

    #define maxsize 7

    #define false -1

    #define true 1

    #define ok 1

    #define error -1

    typedef int datatype;

    typedef struct node

    datatype data[maxsize];

    int top;

    seqstack;

    void push(seqstack *s,datatype x);

    seqstack *setnull(seqstack *s);

    int empty(seqstack *s);

    datatype pop(seqstack *s);

    int main()

    seqstack *p;

    int i,x;

    datatype dat;*注意這裡 * p=(seqstack*)malloc(sizeof(seqstack));

    setnull(p);

    printf("please enter the number:");

    for(i=0;i!=maxsize-1;i++)scanf("%d",&x);

    push(p,x);

    printf("please enter the number:");

    empty(p);*注意,這句話似乎沒有必要* dat=pop(p);

    printf("%d",dat);

    return 0;

    seqstack *setnull(seqstack *s)s->top=-1;

    return s;*注意事項*

    int empty(seqstack *s)if(s->top>=0)

    return false;

    elsereturn true;

    void push(seqstack *s,datatype x)if(s->top==maxsize-1)printf("overflow");

    return null;*注意這裡* elses->top++;

    s->data[s->top]=x;

    資料型別 pop(seqstack *s)if(empty(s)==true) *注意這裡 *printf("underflow");

    return null;

    elses->top--;

    return (s->data[s->top]);

  3. 匿名使用者2024-01-27

    你依次考慮堆疊的元素。

    b,d,c,f,e,a

    當每個元素不在堆疊中時,堆疊中有多少元素(包括自身)對應於這些值的最大值,即堆疊的最小容量。 因為如果小於此值,堆疊將無法容納每個堆疊外元素所需的空間。

    在這種情況下,最大值是元素。

    d 出堆疊,一起。

    d本身,有。

    三個元素 a、c 和 d 都在堆疊中(b 已經不在堆疊中),所以這個問題的答案是。

  4. 匿名使用者2024-01-26

    根據出口和堆疊進入的順序,分析如下:

    乙個在。 b 在。

    B Out 要求至少 2 個容量

    空調留給進入。

    d 在。 d 出來。

    c out 加上 a

    需要至少 3 個容量

    左 AE 進入。

    F 英吋。 f 輸出。

    e 出。 乙個出來。

    E、F 加 A

    需要至少 3 個容量

    基於以上分析。

    最小容量為 3 個即可。

  5. 匿名使用者2024-01-25

    顯然,這是通過迴圈佇列完成的。

    在程式中,f = (i+1)%maxsize 表示獲取最後乙個元素的索引。 在此宣告中:

    1) maxsize:常量(最有可能是巨集)表示佇列中可以容納的最大元素數。

    2) (i+1) 是乙個向下移動的索引(由於 i=q->front,因此 i+1 是佇列頂部元素的索引)。

    3) f=(i+1)%maxsize,使用餘數運算實現環佇列下標索引"回頭",即,如果您移動到最後乙個佇列的最後乙個位置(即,如果 i = maxsize-1),則 f=(i+1)%maxsize=0,自動返回到環形佇列的開頭。

  6. 匿名使用者2024-01-24

    迴圈佇列,從佇列頭部到佇列末尾的輸出。

    front;當團隊的 head 元素不為空時,head 指標指向該元素; 當佇列不為空時,如果 f = i,則尾部指標指向佇列尾部元素的下乙個位置; 這是順序佇列。

    f = (i + 1) %maxsize;是迴圈佇列。

相關回答
37個回答2024-06-10

1.在C語言中,%符號是餘數運算,即模組化運算(mod)。 >>>More

14個回答2024-06-10

int a=3,b=;

第一 IFIF(a>b) a=b; c=a; >>>More

9個回答2024-06-10

建議你把 cheng 的這個函式寫得更簡單一些。 >>>More

8個回答2024-06-10

房東你好! ~

#include >>>More

6個回答2024-06-10

身體已經走了幾千年。