参考答案和解析
正确答案:正确
更多“删除非空链式存储结构的堆栈(设栈顶指针为top)的一个元素的过程是依次执行:p←top,top←link(p),call RET(p)。”相关问题
  • 第1题:

    对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,并给该结点赋值a,则执行:p=(structnode*)malloc(sizeof(structnode);p->data=a;和()。

    A.p->next=top;p=top;

    B.top->next=p;p=top;

    C.p->nex=top;top=p;

    D.top=top->next;pe=top;


    参考答案:C

  • 第2题:

    阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。

    [说明]

    用链式存储结构实现的栈称为链栈。若链栈元素的数据类型为datatype,以LinkStack记链栈结构,其类型定义为:

    typedef struct node

    { datatype data;

    stmct node * next;

    } StackNode, * LinkStack;

    由于栈的主要操作都是在栈顶进行的,因此我们把链表的头部作为栈顶。设top为栈顶指针,即:LinkStack top。

    下面各函数的功能说明如下:

    (1)LinkStack Init_LinkStack():建立并返回空的链栈;

    (2)int Empty_LinkStack(LinkStack top):判断top所指链栈是否空;

    (3)LinkStack Push_LinkStack(LinkStacktop,datatypex):将数据x压人top所指链栈的栈顶,返回新栈指针;

    (4)LinkStack Pop_LinkStack (LinkStacktop, datatype*x):弹出top所指链栈的栈顶元素x,返回新栈指针。

    [函数]

    LinkStaek Init_LinkStack( )

    { returnNULL;

    int Empty_LinkStack ( LinkStaek top)

    if(top = = NULL) return 1;

    else return 0;

    LinkStaek Push_LinkStaek( LinkStaektop, datatype X)

    { StaekNode *s;

    s=malloc (sizeof(StaekNode) );

    (1)= x;

    (2)= top;

    (3);

    return top;

    }

    LinkStaek Pop_LinkStack (LinkStacktop, datatype * x)

    { StaekNode *p;

    if(top = = NULL) return NULL;

    else{

    * x =(4);

    p = top;

    (5);

    free (p);

    return top;

    }

    }


    正确答案:(1)s->data (2)s->next (3)top=s (4)top->data (5)top=top->next
    (1)s->data (2)s->next (3)top=s (4)top->data (5)top=top->next 解析:(1)~(3):LinkStack Push_LinkStack(Link- Stacktop,datmype x)函数的功能是将x压入栈顶,因此首先为其创建一个节点s,使s->data等于x,使s-> next指向原来的栈顶top,最后将,作为新栈的栈顶并返回。
    (4)~(5):LinkStack Pop_LinkStaek(LinkStacktop, datatype*x)的功能是弹出原栈顶元素,返回这个元素以及新栈的指针。当原链栈不空时,取出栈顶元素top ->data赋给参量*x作为返回值,将top->next更新为新栈的栈顶,并且释放原来top节点的空间。

  • 第3题:

    设链式栈中节点的结构为(data,link),且top是指向栈顶的指针。则想将栈顶节点的值保存到X中并将栈顶节点删除应执行______。

    A.x=top→data;top=top→link;

    B.x=top→data;

    C.x=top;top=top→link;

    D.top=top→link;X=top→data;


    正确答案:A
    解析:若有栈S=(S0,S1,…Sn),则S0称为栈底节点,sn-1称为栈顶节点。通常称栈的节点插入为进栈(Push),栈的节点的删除为出栈(Pop)。
      栈有两种存储结构:顺序栈和链栈。顺序栈即栈的顺序存储结构,是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时设指针top指示栈顶元素的当前位置。链栈即栈的链式存储结构,链表的第一个元素是栈顶元素,链表的末尾是栈底节点,链表的头指针就是栈顶指针,栈顶指针为空则是空栈。

  • 第4题:

    设链式栈中结点的结构为(data,link),且top是指向栈顶的指针。若想摘除链式栈的栈顶结点,并将被摘除结点的值保存到x中,则应执行的操作是(32)。

    A.x=top->data;top=top->link;

    B.top=top->link;x=top->data;

    C.x=top;top=top->link;

    D.x=top->data;


    正确答案:A
    解析:x先取栈顶结点的值,并从栈中去掉这个结点。

  • 第5题:

    对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,并给该结点赋值a,则执行:p=(structnode*)malloc(sizeof(structnode));p->data=a;和()。

    Ap->next=top;p=top;

    Btop->next=p;p=top;

    Cp->nex=top;top=p;

    Dtop=top->next;pe=top;


    C

  • 第6题:

    在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行()。

    A p->next=top;top=p;

    B top->next=p;

    C p->next=top->next;top=top->next;

    D p->next=top->next;top->next=p;


    A

  • 第7题:

    链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。

    • A、x=top->data;top=top->link;      
    • B、top=top->link;x=top->link;     
    • C、x=top;top=top->link;        
    • D、x=top->link;

    正确答案:A

  • 第8题:

    对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,并给该结点赋值a,则执行:p=(structnode*)malloc(sizeof(structnode));p->data=a;和()。

    • A、p->next=top;p=top;
    • B、top->next=p;p=top;
    • C、p->nex=top;top=p;
    • D、top=top->next;pe=top;

    正确答案:C

  • 第9题:

    单选题
    在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行()。
    A

     p->next=top;top=p;

    B

     top->next=p;

    C

     p->next=top->next;top=top->next;

    D

     p->next=top->next;top->next=p;


    正确答案: C
    解析: 暂无解析

  • 第10题:

    判断题
    删除非空链式存储结构的堆栈(设栈顶指针为top)的一个元素的过程是依次执行:p←top,top←link(p),call RET(p)。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第11题:

    填空题
    向一个栈顶指针为top的链式栈中插入一个新结点*p时,应执行()和()操作。

    正确答案: P->link=top,top=p
    解析: 暂无解析

  • 第12题:

    判断题
    删除非空链式存储结构的堆栈(设栈顶指针为top)的一个元素的过程是依次执行:p=top,top=p->next,free(p)。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第13题:

    正常情况下,删除非空的顺序存储结构的堆栈的栈顶元素,栈顶指针top的变化是()。

    A、top不变

    B、top=0

    C、top=top+1

    D、top=top-1


    参考答案:D

  • 第14题:

    设链式栈中结点的结构为(data,link),且top是指向栈顶的指针。若想在链式栈的栈顶插入一个由指针s所指的结点,则应执行的操作是(31)。

    A.top->link=s;

    B.s->link=top->link;top->link=s;

    C.s->link=top;top=s;

    D.s->link=top;top=top->link;


    正确答案:C
    解析:s作为新的栈顶,top指向s。

  • 第15题:

    当利用大小为N的数组顺序存储一个栈时,假定用栈顶指针top=N+1表示栈空,则向这个栈插入一个元素时,首先应执行______语句修改top指针。

    A.top:=top+1

    B.top:=top-1

    C.top:=0

    D.top:=N


    正确答案:B
    解析:由题可知该题栈底为高地址,因此向栈中插入一数据时指向栈顶的指针减1。

  • 第16题:

    设链式栈中节点的结构为(data,link),且top是指向栈顶的指针。若想摘除链式栈的栈顶节点,并将被摘除节点的值保存到x中,则应执行下列()操作。

    A.x=top->data;top=top->link;
    B.top=top->link;x=top->data;
    C.x=top;top=top->link;
    D.x=top->data;

    答案:A
    解析:
    若想摘除链式栈的栈顶节点,并将被摘除节点的值保存到x中,则应执行x=top->data;top=top->link.

  • 第17题:

    设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则取栈顶元素的操作为()。

    Atop->data=x;

    Btop=top->next;

    Cx=top->data;

    Dx=top->data;top=top->next;


    A

  • 第18题:

    向一个栈顶指针为top的链式栈中插入一个新结点*p时,应执行()和()操作。


    正确答案:P->link=top;top=p

  • 第19题:

    删除非空链式存储结构的堆栈(设栈顶指针为top)的一个元素的过程是依次执行:p=top,top=p->next,free(p)。


    正确答案:正确

  • 第20题:

    设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则取栈顶元素的操作为()。

    • A、top->data=x;
    • B、top=top->next;
    • C、x=top->data;
    • D、x=top->data;top=top->next;

    正确答案:A

  • 第21题:

    单选题
    链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。
    A

    x=top->data;top=top->link;      

    B

    top=top->link;x=top->link;     

    C

    x=top;top=top->link;        

    D

    x=top->link;


    正确答案: D
    解析: x=top->data将结点的值保存到x中,top=top->link栈顶指针指向栈顶下一结点,即摘除栈顶结点。

  • 第22题:

    单选题
    正常情况下,删除非空的顺序存储结构的堆栈的栈顶元素,栈顶指针top的变化是()。
    A

    top不变

    B

    top=0

    C

    top=top+1

    D

    top=top-1


    正确答案: D
    解析: 暂无解析

  • 第23题:

    单选题
    设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为(  )。
    A

    top=top+1;

    B

    top=top-1;

    C

    top->next=top;

    D

    top=top->next;


    正确答案: A
    解析: