数据结构

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

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


发布日期:2021年01月05日
 
北大自考数据结构上机考试复习总结[2]
编一C程序它能对输入的一串整数(不多于为结束标记)到数组a中再对a的元素进行直接插入排序(从小到大排序)输出排序结果和所用关键字比较次数(输入时两个相邻的整数用空格隔开)

(注程序的可执行文件名必须是 eexe存于你的账号或其debug目录下)

#include

#include

void main()

{

int ij kkc[]skcount=flag=;

int a[];

int b[];

printf(请输入个数到a中\n);

for(i=;i<;i++)

scanf(%d&a[i]);

printf(请输入个数到b中\n);

for(i=;i<;i++)

scanf(%d&b[i]);

for(i=;i<;i++){

for(k=;k<;k++)

{s=;

for(j=;j<&&i>=j;j++)

k=i*(i+)/+j;

if(j>=k)

k=j*(j+)/+i;

else

continue;

s+=a[k]*b[k];

flag=;

}

if(flag)

{

c[count++]=s;

flag=;

}

}

for(i=;i<;i++)

printf(%dc[i]);

}

数据结构练习题

编一C程序它能根据输入的二叉树前序和中序序列来构造该二叉树并能输出该二叉树的后序序列和该二叉树叶的结点的个数以及该二叉树高度(输入次序是表示前序序列的字符串表示中序序列的字符串)

(注程序的可执行文件名必须是 eexe存于你的账号或其debug目录下)

#include

#include

#include

void exit(int);

#define MAX

typedef struct node{

char d;

struct node *lchild*rchild;

}Tnode;

void MKTree(char pre[]int presint preechar in[]int isint ieTnode **r)

{

int i;

if(pres>pree||is>ie)

*r=NULL;

else{

*r=malloc(sizeof(Tnode));

for(i=is;i<=ie;i++)

if(pre[pres]==in[i])

{

MKTree(prepres+pres+iisinisis+i&(*r)>lchild);

MKTree(prepres+i+is+preeinis+i+ie&(*r)>rchild);

break;

}

}

}

void postorder(Tnode *r)

{

if(r)

{

postorder(r>lchild);

postorder(r>rchild);

printf(%cr>d);

}

}

int num(Tnode *r)

{

if(r==NULL)

return ;

else

if(r>lchild==NULL&&r>rchild==NULL)

return ;

else

return num(r>lchild)+num(r>rchild);

}

int height(Tnode *r)

{

int hh;

if(r==NULL)

return ;

else

{

h=height(r>lchild);

h=height(r>rchild);

return +(h>h)?hh;

}

}

void main()

{

Tnode *r;

char pre[MAX]in[MAX];

printf(input preorder and inorder \n);

gets(pre);

gets(in);

MKTree(prestrlen(pre)instrlen(in)&r);

printf(The postorder is as follow\n);

postorder(r);

printf(\n there are %d leaves in the tree\nnum(r));

printf(h=%d\nheight(r));

}

[] [] [] []

               

上一篇:数据结构之拓扑排序

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