首页 > 外贸类考试
题目内容 (请给出正确答案)
[主观题]

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

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

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“向一个栈顶指针为top的链式栈中插入一个新结点*p时,应执行…”相关的问题
第1题
设链式栈中节点的结构为(data,link),且top是指向栈顶的指针。则在栈顶插入一个由指针s所指的节点应执行______。

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;

点击查看答案
第2题
向一个栈顶指针为H的链栈中插入一个s所指向的结点时,需执行()。A.H->link=sB.s->link=H->link;H->

向一个栈顶指针为H的链栈中插入一个s所指向的结点时,需执行()。

A.H->link=s

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

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

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

点击查看答案
第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题
假设用一个长度为 50 的数组 (数组元素的下标从 0 到 49) 作为栈的 存储 空间,栈底指针 bot

假设用一个长度为 50 的数组 (数组元素的下标从 0 到 49) 作为栈的 存储 空间,栈底指针 bottom 指向栈

底元素,栈顶指针 top 指向栈顶元素,如果 bottom=49 , top=30(数组下标 ) ,则栈中具有 【 1 】 个元素。

点击查看答案
第5题
设栈的存储空间为S(1:m),初始状态为top=m+1。经过一系列入栈与退栈操作后,top=1。现又要将一个元素
进栈,栈顶指针t叩值变为()。

A.发生栈满的错误

B.2

C.m

D.0

点击查看答案
第6题
一个链栈的栈顶指针是top,则执行出栈操作时(栈非空),用x保存被删除结点的值,则执行()。

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

B.x=top->data;

C.top=top->next;x=top->data;

D.x=top->data;top=top->next;

点击查看答案
第7题
●试题二 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 函数pri

●试题二

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

【说明】

函数print(BinTreeNode*t;DateType &x)的功能是在二叉树中查找值为x的结点,并打印该结点所有祖先结点。在此算法中,假设值为x的结点不多于一个。此算法采用后序的非递归遍历形式。因为退栈时需要区分右子树。函数中使用栈ST保存结点指针ptr以及标志tag,Top是栈顶指针。

【函数】

void print(BinTreeNode*t;DateType &x){

stack ST;int i,top;top=0;∥置空栈

while(t!=NULL &&t->data!=x‖top!=0)

{while(t!=NULL && t->data!=x)

{

∥寻找值为x的结点

(1) ;

ST[top].ptr=t;

ST[top].tag=0;

(2) ;

}

if(t!=Null && t->data==x){∥找到值为x的结点

for(i=1; (3) ;i++)

printf("%d",ST[top].ptr->data);}

else{

while((4) )

top--;

if(top>0)

{

ST[top].tag=1;

(5) ;

}

}

}

点击查看答案
第8题
●试题二 阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 函数Multiba

●试题二

阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数n转换成B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:

#define MAXSIZE 32

typedef struct{

int *elem;/*栈的存储区*/

int max; /*栈的容量,即栈中最多能存放的元素个数*/

int top;/*栈顶指针*/

}Stack;

【代码】

int InitStack(Stack *S,int n)/*创建容量为n的空栈*/

{S->elem=(int*)malloc(n *sizeof(int));

if(S->elem==NULL)return-1;

S->max=n; (1) =0;return 0;

}

int Push (Stack *s,int item)/*将整数item压入栈顶*/

{if(S->top==S->max){printf(″Stack is full!\n″);return-1;}

(2) =item;return 0;

}

int StackEmpty(Stack S){return(! S.top)?1∶0;}/*判断栈是否为空*/

int Pop(Stack *S)/*栈顶元素出栈*/

{if(! S->top){printf(″Pop an empty stack!\n″);return -1;}

return (3) ;

}

void MultibaseOutput(long n,int B)

{int m;Stack S;

if(InitStack(&S,MAXSIZE)){printf(″Failure!\n″);return;}

do {

if(Push(&S, (4) )){printf(″Failure!\n″);return;}

n= (5) ;

}while(n !=0);

while(! StackEmpty(S)){/*输出B进制的数*/

m=Pop(& S);

if(m<10)printf(″%d″,m);/*小于10,输出数字*/

else printf(″%c″,m+55);/*大于或等于10,输出相应的字符*/

}

printf(″\n″);

}

点击查看答案
第9题
阅读以下说明和C程序代码,将应填入______处的语句写在答题纸的对应栏内。 [说明] 函数MultibaseOu

阅读以下说明和C程序代码,将应填入______处的语句写在答题纸的对应栏内。

[说明]

函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数n转换成 B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:

define MAXSIZE 32

typedef struct{

int * elem; /* 栈的存储区 */

int max; /* 栈的容量,即栈中最多能存放的元素个数 */

int top; /* 栈顶指针 */

}Stack;

[C代码]

int InitStack(Stack * S,int n) / * 创建容量为n的空栈 */

{ S->elem=(int *)malloc(n * sizeof(int));

if(S->elem==NULL)return-1;

S->max=n; (1)=O;return 0;

}

int Push(Stack * S,int item) / * 将整数item压入栈顶 * /

{ if(S->top==S->max){ printf(“Stack is full! \n”);return-1;}

(2)=item;return 0;

}

int StackEmpty(StackS) {return (! S.top)? 1:0;} / * 判断栈是否为空 * /

int Pop(Stack *S ) / * 栈顶元素出栈 * /

{ if(! S->top){printf(“Pop an empty stack! \n”);return-1;}

return (3);

}

void MultibaseOutput(long n,int B)

{ int m;StackS;

if (InitStack(&S,MAXSIZE)){printf(“Failure! \n”);return;}

do {

if(Push(&S, (4) )){printf(“Failure! \n”);return;}

n=(5);

}while(n!=0);

while(! StackEmpty(S)){ / * 输出B进制的数 * /

m=Pop(&S);

if(m<10)printf(“%d”,m); / * 小于10,输出数字 * /

else printf(“%c”,m+55); / * 大于或等于10,输出相应的字符 * /

}

printf(“\n”);

}

点击查看答案
第10题
试题四 阅读以下说明和C代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明] 函数Mult

试题四

阅读以下说明和C代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

[说明]

函数MultibaseOutput(long n, int B)的功能是:将一个无符号十进制整数n转换成B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:

#define MAXSIZE 32

typedef struct {

int *elem; /* 栈的存储区 */

int max; /* 栈的容量,即栈中最多能存放的元素个数 */

int top; /* 栈顶指针 */

}Stack;

[C代码]

int InitStack(Stack *S, int n) /* 创建容量为n的空栈 */

{ S->elem = (int *)malloc(n * sizeof(int));

if(S->elem == NULL) return -1;

S->max = n; (1) = 0 ; return 0;

}

int Push(Stack *S, int item) /* 将整数item压入栈顶 */

{ if(S->top == S->max){ printf("Stack is full!\n"); return -1;}

(2) = item ; return 0;

}

int StackEmpty(Stack S) { return (!S.top) ? 1 : 0; } /* 判断栈是否为空 */

int Pop(Stack *S) /* 栈顶元素出栈 */

{ if(!S->top) { printf("Pop an empty stack!\n"); return -1;}

return (3) ;

}

void MultibaseOutput(long n, int B)

{ int m; Stack S;

if (InitStack(&S, MAXSIZE)) {printf("Failure!\n"); return;}

do {

if (Push(&S, (4) )) {printf("Failure!\n"); return;}

n = (5) ;

}while(n != 0);

while(!StackEmpty(S)) { /* 输出B进制的数 */

m = Pop(&S);

if(m < 10) printf("%d", m); /* 小于10,输出数字 */

else printf("%c", m + 55); /* 大于或等于10,输出相应的字符 */

}

printf("\n");

}

点击查看答案
第11题
以下有关顺序栈的操作中正确的是()。
以下有关顺序栈的操作中正确的是()。

A、n个元素进入一个栈后,它们的出栈顺序一定与进栈顺序相反

B、若一个栈的存储空间为S[n],则对栈的进栈和出栈操作最多只能执行n次

C、栈是一种对进栈、出栈操作的次序做了限制的线性表

D、空栈没有栈顶指针

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改