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

身体已经走了几千年。