求代码:编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值

论坛 期权论坛 期权     
yangruiwansui   2018-4-26 14:07   3521   1
数据结构:(c语言)自行设计二叉树;要求二叉树用二叉链表存储结构。
分享到 :
0 人收藏

1 个回复

正序浏览
2#
eryarfly  1级新秀 | 2018-4-30 01:48:26 发帖IP地址来自
好像就是线索二叉树,
下面是二叉树创建、遍历程序,没有线索二叉树。仅供参考。。。
//------------------------------------------------------------------------------
// Copyright (c) 2009 eryar All rights reserved.
//
//  File : BinTree.h
//  Author : eryar@163.com
//  Date : 2009-9-13 19:07
//  Version : 1.0v
//
// Description : Binary tree declaration
//
//==============================================================================

#ifndef _BINTREE_H_
#define _BINTREE_H_

#include
using namespace std;

typedef char ElemType;

typedef struct Node{
ElemType data;
struct Node* lChild;
struct Node* rChild;
}Node;

typedef struct Node* BinTree;

//------------------------------------------------------------------------
bool InitBinTree(BinTree* T);
void CreateBinTree(BinTree* T);
void PreOrderTraverse(BinTree T);
void InOrderTraverse(BinTree T);
void PostOrderTraverse (BinTree T);
void LevelOrderTraverse(BinTree T);
bool isEmpty(BinTree T);
//========================================================================

#endif // _BINTREE_H_

//------------------------------------------------------------------------------
// Copyright (c) 2009 eryar All rights reserved.
//
//  File : BinTree.cpp
//  Author : eryar@163.com
//  Date : 2009-9-13 19:11
//  Version : 1.0v
//
// Description : Binary tree definition
//
//==============================================================================

#include "BinTree.h"

/*
Parameter : BinTree*
Return  : true or false
Description : initialize the binary tree
*/
bool InitBinTree(BinTree* T) {
*T = NULL;
return true;
} // InitBinTree

/*
Parameter : BinTree*
Return  : none
Description : create a binary tree in preorder
*/
void CreateBinTree(BinTree* T) {
ElemType elem;

cin>>elem;

if (elem == '#') {
  *T = NULL;
}
else {
  *T  = new Node;
  (*T)->data = elem;
  CreateBinTree(&(*T)->lChild);
  CreateBinTree(&(*T)->rChild);
}

} // CreateBinTree

/*
Parameter : BinTree*
Return  : true or false
Description : PreOrder visit binary tree
*/
void PreOrderTraverse(BinTree T) {
if (T) {
  cout
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP