删除非空链式存储结构的堆栈(设栈顶指针为top)的一个元素的过程是依次执行:p←top,top←link(p),call RET(p)。
第1题:
A.p->next=top;p=top;
B.top->next=p;p=top;
C.p->nex=top;top=p;
D.top=top->next;pe=top;
第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;
}
}
第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;
第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;
第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;
第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;
第7题:
链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。
第8题:
对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,并给该结点赋值a,则执行:p=(structnode*)malloc(sizeof(structnode));p->data=a;和()。
第9题:
p->next=top;top=p;
top->next=p;
p->next=top->next;top=top->next;
p->next=top->next;top->next=p;
第10题:
对
错
第11题:
第12题:
对
错
第13题:
A、top不变
B、top=0
C、top=top+1
D、top=top-1
第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;
第15题:
当利用大小为N的数组顺序存储一个栈时,假定用栈顶指针top=N+1表示栈空,则向这个栈插入一个元素时,首先应执行______语句修改top指针。
A.top:=top+1
B.top:=top-1
C.top:=0
D.top:=N
第16题:
第17题:
设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则取栈顶元素的操作为()。
Atop->data=x;
Btop=top->next;
Cx=top->data;
Dx=top->data;top=top->next;
第18题:
向一个栈顶指针为top的链式栈中插入一个新结点*p时,应执行()和()操作。
第19题:
删除非空链式存储结构的堆栈(设栈顶指针为top)的一个元素的过程是依次执行:p=top,top=p->next,free(p)。
第20题:
设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则取栈顶元素的操作为()。
第21题:
x=top->data;top=top->link;
top=top->link;x=top->link;
x=top;top=top->link;
x=top->link;
第22题:
top不变
top=0
top=top+1
top=top-1
第23题:
top=top+1;
top=top-1;
top->next=top;
top=top->next;