二叉树的层次遍历
来源:互联网 发布:手机降温的软件 编辑:程序博客网 时间:2024/04/28 11:24
首先要有一颗二叉树
typedef struct node{ int flag;//是否被赋值过 int value;//结点的值 struct node *left,*right;//左右孩子}Node;Node* root;//根结点每次加入结点都要做申请新结点的操作
Node* newnode(){ Node* n=(Node*) malloc(sizeof(Node)); if(n!=0)//申请成功 { n->flag=0;//初始化,还没被赋值过 n->left=n->right=0;//初始化,本来没有左右孩子 } return n;}然后要构造二叉树了
void addnode(int value,char *s){ int len=strlen(s); Node* n=root; n->flag=1; for(int i=0;i<len;i++) { if(s[i]=='L')//如果是L,则加上左子树 { if(n->left==0)n->left=newnode();//新结点 n=n->left;//把新结点连上 }else if(s[i]=='R') { if(n->right==0)n->right=newnode(); n=n->right; } n->value=value;//赋值 n->flag=1;//表示已经赋值过了 }}层次遍历,就是bfs啦~
int bfs(){ int front=0,rear=1; Node*q[10010]; q[0]=root; while(front<rear) { Node* n=q[front++]; if(!n->flag)return 0; ans[cnt++]=(n->value); //printf("YES"); if(n->left!=0)q[rear++]=n->left; if(n->right!=0)q[rear++]=n->right; } return 1;}
0 0
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历!!!
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- jsp初学参考
- javascript字符串与日期转换
- 黑马程序员_高新技术
- JAVA包中的各种类汇总
- 循环双链表的简单实现
- 二叉树的层次遍历
- SharePoint 2013 文档库文件使用新页面打开方法
- 密码行业标准培训小结
- Java开发人员指南在开发自己的DBMS,有不同的Java
- Activity生命周期之我见
- 单例设计模式
- Weevely
- 最大公约数问题
- 黑马程序员_银行业务调度系统