网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
数据结构C语言实现系列——二叉树
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

#include
#include
#define STACK_MAX_SIZE 30
#define QUEUE_MAX_SIZE 30
#ifndef elemType
  typedef char elemType;
#endif
/************************************************************************/
/*                      以下是关于二叉树操作的11个简单算法               */
/************************************************************************/
struct BTreeNode{
  elemType data;
  struct BTreeNode *left;
  struct BTreeNode *right;
};

/* 1.初始化二叉树 */
void initBTree(struct BTreeNode* *bt)
{
 *bt = NULL;
 return;
}

/* 2.建立二叉树(根据a所指向的二叉树广义表字符串建立) */
void createBTree(struct BTreeNode* *bt, char *a)
{
 struct BTreeNode *p;
 struct BTreeNode *s[STACK_MAX_SIZE];/* 定义s数组为存储根结点指针的栈使用 */
 int top = -1; /* 定义top作为s栈的栈顶指针,初值为-1,表示空栈 */
 int k; /* 用k作为处理结点的左子树和右子树,k = 1处理左子树,k = 2处理右子树 */
 int i = 0; /* 用i扫描数组a中存储的二叉树广义表字符串,初值为0 */
 *bt = NULL; /* 把树根指针置为空,即从空树开始建立二叉树 */
 /* 每循环一次处理一个字符,直到扫描到字符串结束符\0为止 */
 while(a[i] != ''\0''){
     switch(a[i]){
         case '' '':
    break;  /* 对空格不作任何处理 */
   case ''('':
    if(top == STACK_MAX_SIZE - 1){
        printf( "栈空间太小!\n");
     exit(1);
    }
    top++;
    s[top] = p;
    k = 1;
    break;
         case '')'':
    if(top == -1){
        printf( "二叉树广义表字符串错误!\n");
     exit(1);
    }
    top--;
    break;
   case '','':
    k = 2;
    break;
   default:
    p = malloc(sizeof(struct BTreeNode));
    p- >data = a[i];
    p- >left = p->right = NULL;
    if(*bt == NULL){
     *bt = p;
    }else{
        if( k == 1){
            s[top]- >left = p;
        }else{
            s[top]- >right = p;
        }
   &n

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号