用树的思想,队列方式(数组)实现十进制转二进制
输入十进制n=2,首先"1"入队(相当于树根),然后“1”出队,添加他两个孩子“10”和“11”,依次入队。注意队列是一头进一头出,所以循环一次之后n—变成1,再次出队,出的是“10”,出队的孩子“100”和“101”入队。
| | |
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct QN{
char s[10];
struct QN *next;
}QNode;
int main()
{
int n;
printf("请输入n");
scanf("%d",&n);
struct QN *QU;
QNode qu[100];
int front,rear,fronter;
front=rear=0;
if(n==1)
{
printf("十进制1");
}
else if(n>=1)
{
strcpy(qu[0].s ,"1");rear++;
while(n>0)
{
printf("%sn",qu[front].s ); front++;
fronter=front-1;
strcpy(qu[rear].s,qu[fronter].s);strcat(qu[rear].s,"0");rear++;
//printf("rear=%dn",rear);
strcpy(qu[rear].s,qu[fronter].s);strcat(qu[rear].s,"1");rear++;
n=n-1;
}
}
}
最后
以上就是明理小馒头最近收集整理的关于用树的思想,队列方式(数组)实现十进制转二进制的全部内容,更多相关用树内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复