| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 632 人关注过本帖
标题:这个程序有的能运行出来,但是到Assign 和seach的地方结果没出来,请大家帮 ...
只看楼主 加入收藏
pjzpjz19880
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-6-6
结帖率:66.67%
收藏
 问题点数:0 回复次数:1 
这个程序有的能运行出来,但是到Assign 和seach的地方结果没出来,请大家帮我看看啦。可以的话帮我修改下啊。
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <windows.h>
using namespace std;

#define  MaxLength        7
#define  OK                1
#define  OVERFLOW        -2

void clrscr(void);
void clrscr(void);
void gotoxy(int ,int );


typedef struct BiTNode{
    char    data;
    struct    BiTNode *lchild, *rchild;
}BiTNode,*BiTree;

int   Win_x;//坐标


void PostOrder(BiTree b)
{
    if(b!=NULL){
        PostOrder(b->lchild);
        PostOrder(b->rchild);
        printf("%c",b->data);
    }
   
}

void LevelOrderTraverse(BiTree b){//层序遍历
 BiTree Q[MaxLength];
 int front=0,rear=0;
 BiTree p;
 if(b){ //根结点入队
  Q[rear]=b;
  rear=(rear+1)%MaxLength;
 }
 while(front!=rear){
  p=Q[front];   //队头元素出队
  front=(front+1)%MaxLength;
  printf("%c",p->data);
  printf("\n");
  if(p->lchild){  //左孩子不为空,入队
   Q[rear]=p->lchild;
   rear=(rear+1)%MaxLength;
  }
  if(p->rchild){ //右孩子不为空,入队
   Q[rear]=p->rchild;
   rear=(rear+1)%MaxLength;
  }
 }
}
BiTree CreateBiTree(char pre[],char in[],int n)
{
    BiTNode *s;
    char *p;
    int k;
    if(n<=0)return NULL;
    s=(BiTree)malloc(sizeof(BiTNode));
    s->data=*pre;
    for(p=in;p<in+n;p++)
        if(*p==*pre)break;
        k=p-in;
        s->lchild=CreateBiTree(pre+1,in,k);
        s->rchild=CreateBiTree(pre+k+1,p+1,n-k-1);
        return s;
}//
void clrscr(void)
{
    CONSOLE_SCREEN_BUFFER_INFO    csbiInfo;                           
    HANDLE    hConsoleOut;
    COORD    Home = {0,0};
    DWORD    dummy;
    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);
    FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy);
    csbiInfo.dwCursorPosition.X = 0;                                    
    csbiInfo.dwCursorPosition.Y = 0;                                    
    SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);   
}



void gotoxy(int x,int y)  
{
    CONSOLE_SCREEN_BUFFER_INFO    csbiInfo;                           
    HANDLE    hConsoleOut;
    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);
    csbiInfo.dwCursorPosition.X = x;                                    
    csbiInfo.dwCursorPosition.Y = y;                                    
    SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);   
}


void   inorder(BiTree b,int   y)  //以二叉树形状显示
{
 BiTree p=b;
 if(p!=NULL)
 {
  inorder(p->lchild,y+2);
  gotoxy(Win_x-1,y);
 printf("%c",p->data);
  Win_x=Win_x+1;
  inorder(p->rchild,y+2);
 }
 else
 {
  gotoxy(Win_x,y);
  printf("   .   ");
  Win_x=Win_x+2;
 }
}


//初始条件:二叉树T存在,e 是T 中某个结点  
//操作结果:结点e赋值为x  
int Assign(BiTree b,BiTNode* e,char x)  
{  
    if(!b) return 0;  
    e->data=x;  
    return 1;
}

  
bool search( BiTree b, BiTNode* e, char g)
{
    if (b == NULL)
        return false;
    e->data = g;
         
      if (search(b,e->lchild, g) || search(b,e->rchild, g))
           return 1;
}

        
        
    int main()
{
    char x;
    BiTNode * e;
    BiTree b;int n;char s1[100],s2[100],g;
    scanf("%s",&s1);
    scanf("%s",&s2);
    scanf("%c",&x);
    scanf("%c",&g);
    n=strlen(s1);
    b=CreateBiTree(s1,s2,n);
    PostOrder(b);
    LevelOrderTraverse( b);


//    clrscr();
         int y=1;//坐标
        Win_x=2;
    inorder(b,y);
    search(b,e,g);
    Assign(b,e,x);


    return 0;
}


搜索更多相关主题的帖子: Assign seach 结果 运行 
2010-06-10 23:17
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
截张图 看看 你的操作 和当前的效果  、、、、、、
2010-06-11 11:04
快速回复:这个程序有的能运行出来,但是到Assign 和seach的地方结果没出来,请大 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049667 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved