手机版

数据结构实验五查找算法应用

发布时间:2024-11-17   来源:未知    
字号:

天津理工大学实验报告

学院(系)名称:计算机与通信工程学院

实验思路:首先定义二叉链表的存储结构,定义左右孩子, 用递归算法定义插入二叉排序树,按照左小于中小于右,即程序中的insert()函数。然后是生成二叉树的算法,即CreateTree()函数,最后是中序遍历的递归算法的算法,即InOrder()函数。下面是主函数main()函数。程序结果如图所示。

实验代码如下:

#include<stdio.h>

#include<stdlib.h>

typedef int ElemType;//每个元素的数据类型为Elemtype,假设为int

typedef int KeyType;

typedef struct BiTNode{//定义二叉链表结构

ElemType data;

struct BiTNode * lchild,* rchild;//左右孩子指针

}BiTNode;

typedef BiTNode *BiTree;//将BiTree定义为指向二叉链表节点结构的指针类型

BiTree insert(BiTree T,KeyType k){//二叉排序树的插入,递归算法

if(T==NULL){

T=(BiTree)malloc(sizeof(BiTNode));

T->data=k;

T->lchild=T->rchild=NULL;

}

else if(k<T->data) T->lchild = insert(T->lchild,k);

else if(k>T->data) T->rchild = insert(T->rchild,k);

return T;

}

BiTree CreateTree(int n)

{//生成二叉树的递归算法

int i ;

BiTree T;

T=(BiTree)malloc(sizeof(BiTNode));

T= NULL;

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

{

int k;

scanf("%d",&k);

T=insert(T,k);

}

return T;

}

void InOrder(BiTree root){//中序遍历

if(root==NULL) return;

InOrder(root->lchild);

printf("% d",root->data);

InOrder(root->rchild);

}

void main()

{

BiTree p;

int n;

printf("请输入关键字个数n:\n"); scanf("%d",&n);

printf("请输入节点值创建二叉排序数:\n"); p=CreateTree(n);

printf("递归中序遍历为:\n");

InOrder(p);

printf("\n");

printf("以上为遍历的结果!\n"); }

实验结果如图所示:

数据结构实验五查找算法应用.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)