数据结构习题集答案解析清华大学版

}

}

} i++;

if(!StackEmpty(s)){ }

else return FALSE;

if(!StackEmpty(s)) return FALSE; return OK;

Pop(s,c1); strcpy(a,c1);

void InitStack(Stack &s) { }

Status Push(Stack &s,ElemType e) { }

Status Pop(Stack &s,ElemType e) { }

Status StackEmpty(Stack s) { }

if(s、size==0) return TRUE; else return FALSE; LinkType p; if(s、top){ }

return OK;

strcpy(e,s、top->data); p=s、top; s、top=p->next; delete p; s、size--; LinkType p; p=new NodeType; if(!p) exit(OVERFLOW); p->next=s、top; s、top=p;

strcpy(p->data,e); s、size++; return OK; s、top=NULL; s、size=0;

Status IsOperator(char c) { }

3、24 试编写如下定义得递归函数得递归算法,并根据算法画出求g(5,2)时栈得变化过程。

解:

int g(int m,int n); int main() { }

int g(int m,int n) { }

假设主函数得返回地址为0,递归函数3条语句得地址分别为1、2、3。

3 3 3 3 3 0

0 1 2 3 4 5

64 32 16 8 4 2

if(m>0)

return(g(m-1,2*n)+n); else return 0; int m,n;

cout<<\请输入m与n得值:\cin>>m>>n;

if(n>=0) cout<

char *p=\while(*p){ }

return FALSE;

if(*p==c)

return TRUE; p++;

0m?0,n?0? g?m,n?????gm?1,2n?nm?0,n?0?3、25 试写出求递归函数F(n)得递归算法,并消除递归:

解:

#include #define N 20 int main()

??n?1F?n???n?Fn?2???n?0n?0

{ }

3、26 求解平方根

int i; int a[N]; int n;

cout<<\请输入n:\cin>>n;

for(i=0;i

cout<

if(i<1) a[i]=1; else a[i]=i*a[i/2];

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4