关于压栈指令和d栈指令的计算,需要详细过程

关于压栈指令和d栈指令的计算,需要详细过程,第1张

MOV AX,1000H

MOV BX,2000H

MOV CX,3000H

PUSH CX

PUSH BX

PUSH AX

POP CX CX 为上次压入的 AX 的内容轮哪,即 CX = 1000H。

POP AX AX 为亏桐老上上次销升 BX 压入的内容,即 AX = 2000H。

程序执行后,寄存器的内容是 BX = 2000H,CX = 1000H。

#include <stdio.h>

#define M 100

typedef struct

{

 int elem[M]

 int top

}SqStack

void init(SqStack*s)/*初始化栈*/

{s->top=0}

int empty(SqStack*s) /*栈为空返回1,否则返回0 */

{return(! s->top)}    //第一处                   

int push(SqStack*s,int x) /*进栈*/

{if(s->top==M)return 0

s->elem[s->top]=x     //第二处        

s->top++              //第三处                         

return 1

}

int pop(SqStack*s,int *y) /*出栈*/

{if(s->top==0)return 0

--s->top*y=s->elem[s->top]

return 1

}

void main()

{

 int temp

int x,h,*y=&temp  //注意这里,这个题目本来这里是错的

SqStack stack

SqStack *a=&stack //注意这里,这个题目察猛本来这里是错的

init(a)

scanf("丛则%d%d",&x,&h)

while(x!=0)

{push(a,x%h)           //第四处

x=x/h}

printf("\n")

while(!empty(a))

{pop(a,y)              //第五败郑桥处     

if(*y<10)     

 printf("%d",*y)

else

 printf("%c",*y-10+97)

}

}

2.这个地方没看懂:Pop(10+Pop(S)),pop参数又是s又迅缺拦是整数的

3.我在上个问题回答过了

程序填空题

1. 由于链表是有序亩胡表,各节点data单调的,如递增有序表:lh->2,3,3,3,4,4,5

如果想删除所有值相同的多余元素,从头开始,如果当前节点p的data不等于前一个q的data,说明该节点p和前一个q不是重复,下一个p=p->next;如果当前节点p的data(已赋值给temp)等于前一扮差个q的data,那就删除所有都等于temp的节点,算法思想就是这了。

(1)p->data!=temp

(2)p->data==temp

2. 查找x肯定要遍历树,而遍历树有三种:先序、中序、后序,题目用先序遍历

(3)return null

(4)return BT

(5)return t

(6)if( t=BTF(BT->right,x)) return t


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12223935.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存