关于一个数据结构C++的实验题

来源:百度知道 编辑:UC知道 时间:2024/06/20 13:10:55
这是我们老师要求我们做的一个上机作业,题目为:
1.输入一棵一叉树,输出先序遍历结果
2.输入串S和串T,将串S中子串为T的删除,输出新串

最好是希望兄弟姐妹朋友们,把越详细越好...最好有详细解答(就是为什么用这种语句之类的)

第一题:

#include<stdio.h>
#include<stdlib.h>

typedef struct node
{
char data;
struct node *lchild;
struct node *rchild;
}BTnode;

void create(BTnode *&b,char str[]) //创建二叉树
{
BTnode *St[100],*p=NULL;
int top=-1,k,j=0;
char c;
b=NULL;
c=str[j];
while(c!='\0')
{
switch(c)
{
case '(' :top++;St[top]=p;k=1;break;
case ')' :top--;break;
case ',' :k=2;break;
default :p=(BTnode*)malloc(sizeof(BTnode));
p->data=c;p->lchild=p->rchild=NULL;
if(b==NULL)b=p;
else
{
switch(k)
{
case 1:St[top]->lchild=p;break;
case 2:St[top]->rchild=p;break;
}
}
}
j++;
c=str[j];
}
}

char xianxu(BTnode *&b)
{
BTnode *p;