编一C程序
它能读入一串(n个)整数(以
为结束标记)
并判断第
个整数在后(n
)个整数中出现的次数
再输出该次数
(输入时
两个相邻的整数用空格隔开)
(注程序的可执行文件名必须是 eexe存于你的账号或其debug目录下)
数据结构练习题
编一C程序它能根据输入的二叉树中序和后序序列来构造该二叉树并能输出该二叉树的前序序列和该二叉树的度为的结点的个数并能判断该二叉树是否为二叉排序树(若是输出Yes;否则输出No)(输入次序是表示中序序列的字母串表示后序序列的字母串)
(注程序的可执行文件名必须是 eexe存于你的账号或其debug目录下)
#include
#include
#include
void exit(int);
#define MAX
typedef struct node{
char d;
struct node *lchild*rchild;
}Tnode;
void MKTree(char in[]int isint iechar post[]int postsint posteTnode **r)
{
int i;
if(is< p>
*r=NULL;
else{
*r=malloc(sizeof(Tnode));
(*r)>d=post[poste];
for(i=is;i<=ie;i++)
if(post[poste]==in[i])
{
MKTree(inisipostpostsposts+iis&(*r)>lchild);
MKTree(ini+iepostposts+iisposte&(*r)>rchild);
break;
}
if(i>ie){
printf(Errorinput contain an error !\n);
exit();
}
}
}
void BST(char in[]int isint ie)
{
int i;
if(is==ie)
printf(yes\n);
else
{
for(i=is;i<=ie;i++)
{
if(in[i]< p>
continue;
else
break;
}
if(i==ie)
printf(YES\n);
else
printf(NO\n);
}
}
void preorder(Tnode *r)
{
if(r)
{
printf(%cr>d);
preorder(r>lchild);
preorder(r>rchild);
}
}
int seconde(Tnode *r)
{
if(r==NULL)
return ;
else
if((r>lchild)!=NULL&&(r>rchild)!=NULL)
return ;
else
return seconde(r>lchild)+seconde(r>rchild);
}
void main()
{
Tnode *r;
char post[MAX]in[MAX];
printf(input inorder and postorder !\n);
gets(in);
gets(post);
MKTree(instrlen(in)poststrlen(post)&r);
printf(the preorder is as follows\n);
preorder(r);
printf(\n there are %d seconde in the tree \nseconde(r));
printf(if the tree is BST\n);
BST(instrlen(in));
}
编一C程序它能读入一串整数(以为结束标记)再以与输入次序相反的次序输出这串整数(输入出时两个相邻的整数用空格隔开)
(注程序的可执行文件名必须是 eexe存于你的账号或其debug目录下)
#include
#define max
main()
{
int a[max];
int n=id;
printf(please enten tne number\n);
do{
scanf(%d&d);
if(d==)
break;
n++;
a[n]=d;
}while();
for(i=n;i>;i——)
printf(%da[i]);
printf(\n);
}
[] [] [] []