永发信息网

C++编程

答案:1  悬赏:40  手机版
解决时间 2021-05-06 08:36

6道题按要求编写,正确的高分

编写程序验证"二叉树"的基本功能 3

目的:
从键盘输入bitree
输出按层次遍历的结果
输出 距离根节点最近的叶子
输入:
ABD..E..C..
输出:
ABCDE //by_level
C //距离根节点最近的叶子


编写程序验证"二叉树"的基本功能 2

目的:
从键盘输入bitree: make_bitree
显示结点总数: count_all
显示度数为0的结点总数: count_N0
显示度数为1的结点总数: count_N1
显示度数为2的结点总数: count_N2
销毁bitree: destory_bitree
输入:
ABD..E..C..
输出:
5 //count_all
3 //count_N0
0 //count_N1
2 //count_N2


编写程序验证"二叉树"的基本功能 1

目的:
从键盘输入bitree: make_bitree
显示bitree内容: pre_order / in_order / post_order
销毁bitree: destory_bitree
输入:
ABD..E..C..
输出:
ABDEC //pre_order
DBEAC //in_order
DEBCA //post_order


编写程序验证"序列表"的基本功能

目的:
从键盘输入创建序列表: input
显示序列表内容: display
在指定位置插入元素: insert
删除指定位置的元素: remove
输入:
5 abcde //创建序列表
2 x //在位置2插入'x'
2 //删除位置2的元素
输出:
5 abcde
6 abxcde
5 abcde


编写程序验证"二叉排序树"的基本功能

目的:
从键盘输入字符串,按字典顺序创建BST, 以^表示结束
输出BST的先序和中序
读入一个字符,查找BST,返回F或T,表明找不到或找到.
输入:
BAC^//创建BST的内容
A //查找内容
输出:
BAC //pre_order
ABC //in_order
T //找到


编写程序验证图的遍历算法

目的:
从键盘输入图的节点数和边
编程分别实现图的深度优先和广度优先算法
读入指定节点,分别输出两种遍历方法访问节点的顺序
输入:
6 ABCDEF //6个节点
9 // 9 个边
AB AC AD BD CD CE CF DF EF //边的描述
输出:
ABDCEF //深度优先的遍历结果
ABCDEF //广度优先的遍历结果

最佳答案


#include "bitree.h"


void Visit(char ch)
{
printf("%c ",ch);
}


void PreOrder(BiTree root)

{
if (root!=NULL)
{
Visit(root->data);
PreOrder(root->LChild);
PreOrder(root->RChild);
}
}


void InOrder(BiTree root)

{
if (root!=NULL)
{
InOrder(root->LChild);
Visit(root->data);
InOrder(root->RChild);
}
}


void PostOrder(BiTree root)

{
if(root!=NULL)
{
PostOrder(root->LChild);
PostOrder(root->RChild);
Visit(root->data);
}
}


void main()
{
BiTree T;
printf("请输入二叉树序列:\n");
CreateBiTree(&T);
printf("先序遍历序列为:");
PreOrder(T);
printf("\n中序遍历序列为:");
InOrder(T);
printf("\n后序遍历序列为:");
PostOrder(T);
getch();
}



//其中的bitree.h内容如下//
#include <stdio.h>
#include <malloc.h>
#include <conio.h>


typedef char DataType;


typedef struct Node
{
DataType data;
struct Node *LChild;
struct Node *RChild;
}BiTNode, *BiTree;



void CreateBiTree(BiTree *bt)
{
char ch;
ch = getchar();
if(ch=='.') *bt=NULL;
else
{
*bt=(BiTree)malloc(sizeof(BiTNode)); //生成一个新结点
(*bt)->data=ch;
CreateBiTree(&((*bt)->LChild)); //生成左子树
CreateBiTree(&((*bt)->RChild)); //生成右子树
}
}



#include "adjmatrix.h"


int LocateVertex(AdjMatrix *G,VertexData v)
{
int j=Error,k;
for(k=0;k<G->vexnum;k++)
if(G->vexs[k]==v)
{
j=k;
break;
}
return(j);
}


int CreateDN(AdjMatrix *G)
{
int i,j,k,weight;
VertexData v1,v2;
printf("输入图的顶点数和弧数\n");
fflush(stdin);
scanf("%d,%d",&G->arcnum,&G->vexnum);
for(i=0;i<G->vexnum;i++)
for(j=0;j<G->vexnum;j++)
G->arcs[i][j].adj=INFINITY;
for(i=0;i<G->vexnum;i++)
{
printf("输入图的顶点\n");
fflush(stdin);
scanf("%c",&G->vexs[i]);
}
for(k=0;k<G->arcnum;k++)
{
printf("输入一条弧的两个顶点及权值\n");
fflush(stdin);
scanf("%c,%c,%d",&v1,&v2,&weight);
i=LocateVertex(G,v1);
j=LocateVertex(G,v2);
G->arcs[i][j].adj=weight;
}
return(Ok);
}


void main()
{
AdjMatrix G;
CreateDN(&G);
}


void DepthFirstSearch(Graph g,int v0)
{
visit(v0);
visited[v0]=True;
w=FirstAdjVertex(g,v0);
while(w!=-1)
{
if(!visited[w])
DepthFirstSearch(g,w);
w=NextAdjVertex(g,v0,w);
}
}

void BreadthFirstSearch(Graph g,int v0)
{
visit(v0);
visited[v0]=True;
InitQueue(&Q);
EnterQueue(&Q,v0);
while(!Empty(Q))
{
DeleteQueue(&Q,&v);
w=FirstAdjVertex(g,v);
while(w!=-1)
{
if(!visited(w))
{
visit(w);
visited[w]=True;
EnterQueue(&Q, w);
}
w=NextAdjVertex(g,v,w);
}
}
}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
郑州哪里有街舞培训班?
怎样把自己的地址设置成外地的?
+10的国殇如何上11
QQ农场可偷(好友名字右边的手)不更新
《偷星九月天》结局怎样?
求三国群英7攻略
金鑫汽车抵押咨询我想知道这个在什么地方
手为什么会起泡?
人是因为活着而活着吗?
simple和easy都带有“简单”的意思,那它们的
怎么会有这样的人呢?明明知道不可能还要这样
高二数学题目4
为什么mp4连接电脑后无法显示出可移动磁盘
帮忙解决一下这几道题?谢谢!
草书彬字怎么写
推荐资讯
独一无二的意思,独一无二的歌词韩语中文音译?
28级异能者精品加12带1洞
爱是建立在什么基础上的?
中秋节诗词名句,中秋节相关的诗词名句
做完去角质后需要洗脸吗?
神兜兜是什么东西- -
电源电压是5V且不变,S闭合后电压表示为1V,则
索爱W810能刷机能改变什么?
有一首歌,歌中有这么一句“我飘呀飘,我摇呀
年龄还没那么大,但看起来很成熟,这是老了吗?
qq遭限制登录不能解除,游戏玩不起但手机又能
龙山区辽源鸭脖士鸭颈王地址在什么地方,想今
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?