上周的第二个作业补上~~
上周的要求:
1.给出顺序栈的存储结构定义。
2.完成顺序栈的基本操作函数。
1) 初始化顺序栈
2) 实现入栈和出栈操作
3) 实现取栈顶元素和判空操作
把十进制整数转换为r(r=2)进制输出
3.编写主函数实现基本操作函数功能,并设置测试数据,测试合法和非法数据的输出结果。
4.程序调试运行并保存输出结果。
5.整理并提交实验作业。
1 #include <cstdio> 2 #include <cstring> 3 #define Stack_Size 50 4 5 typedef struct 6 { 7 int ll[Stack_Size]; 8 int top; 9 }SeqStack; 10 11 int IsEmpty(SeqStack *S)//栈判空 12 { 13 return S->top == -1; 14 } 15 16 void Push(SeqStack * S,int x)//进栈 17 { 18 S->top++; 19 S->ll[S->top]=x; 20 } 21 22 void Pop(SeqStack * S,int *x)//出栈 23 { 24 *x=S->ll[S->top]; 25 S->top--; 26 } 27 28 void InitStack(SeqStack * S)//初始化顺序栈 29 { 30 S->top = -1; 31 } 32 33 34 void zhuanhuan(int a) 35 { 36 SeqStack S; 37 InitStack(&S); 38 int kk; 39 while(a){ 40 kk=a%2; 41 Push(&S,kk); 42 a=a/2; 43 } 44 while(IsEmpty(&S)==0){ 45 int x; 46 Pop(&S,&x); 47 printf("%d",x); 48 } 49 printf("\n"); 50 51 } 52 53 int main() 54 { 55 printf("欢迎使用!本程序将十进制转换成二进制\n"); 56 printf("请输入一个十进制数\n"); 57 int a; 58 scanf("%d",&a); 59 zhuanhuan(a); 60 61 return 0; 62 }
时间: 2024-10-12 18:57:08