数据结构

位置:IT落伍者 >> 数据结构 >> 浏览文章

北大自考数据结构上机考试复习总结[3]


发布日期:2019年07月07日
 
北大自考数据结构上机考试复习总结[3]
编一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);

}

[] [] [] []

               

上一篇:北大自考数据结构上机考试复习总结[4]

下一篇:数据结构之关键路径