关键词不能为空

当前您在: 主页 > 英语 >

C++程序设计Y.Daniel Liang 第十七章课后习题答案

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-25 09:24
tags:

-

2021年1月25日发(作者:bolivia)
Exercise17_2
#include
#include
#include
#include
using namespace std;

#ifndef BINARYTREE_H
#define BINARYTREE_H

template < typename T >
class TreeNode
{
public:


T element; // Element contained in the node


TreeNode < T > * left; // Pointer to the left child


TreeNode < T > * right; // Pointer to the right child



TreeNode() // No-arg constructor


{




left = NULL;




next = NULL;


}



TreeNode(T element) // Constructor


{




this->element = element;




left = NULL;




right = NULL;


}
};



template < typename T >
class BinaryTree
{
public:


BinaryTree();


BinaryTree(T elements[], int arraySize);


bool insert(T element);


void inorder();


void preorder();


void postorder();


int getSize();


bool search(T element);


void breadthFirstTraversal();


int depth();

private:


TreeNode < T > * root;


int size;


void inorder(TreeNode < T > * root);


void postorder(TreeNode < T > * root);


void preorder(TreeNode < T > * root);


bool search(T element, TreeNode < T > * root);


int depth(TreeNode * root);
};



template < typename T >
BinaryTree < T >::BinaryTree()
{


root = NULL;


size = 0;
}

template < typename T >
BinaryTree < T >::BinaryTree(T elements[], int arraySize)
{


root = NULL;


size = 0;


for (int i = 0; i < arraySize; i++)


{




insert(elements[i]);


}
}

/* Insert element into the binary tree * Return true if the element is inserted successfully
* Return false if the element is already in the list */

template < typename T >
bool BinaryTree < T >::insert(T element)
{


if (root == NULL)




root = new TreeNode < T > (element); // Create a new root


else


{




// Locate the parent node




TreeNode < T > * parent = NULL;




TreeNode < T > * current = root;




while (current != NULL)






if (element < current->element)






{








parent = current;








current = current->left;






}






else if (element > current->element)






{








parent = current;








current = current->right;






}






else








return false; // Duplicate node not inserted





// Create the new node and attach it to the parent node




if (element < parent->element)






parent->left = new TreeNode < T > (element);




else






parent->right = new TreeNode < T > (element);


}



size++;


return true; // Element inserted
}

/* Inorder traversal */

template < typename T >
void BinaryTree < T >::inorder()
{


inorder(root);
}

/* Inorder traversal from a subtree */

template < typename T >
void BinaryTree < T >::inorder(TreeNode < T > * root)
{


if (root == NULL) return;


inorder(root->left);


cout << root->element <<


inorder(root->right);
}

/* Postorder traversal */

template < typename T >
void BinaryTree < T >::postorder()
{


postorder(root);
}

/** Inorder traversal from a subtree */

template < typename T >
void BinaryTree < T >::postorder(TreeNode < T > * root)
{


if (root == NULL) return;


postorder(root->left);


postorder(root->right);


cout << root->element <<
}

/* Preorder traversal */

template < typename T >
void BinaryTree < T >::preorder()
{


preorder(root);
}

/* Preorder traversal from a subtree */

template < typename T >
void BinaryTree < T >::preorder(TreeNode < T > * root)
{


if (root == NULL) return;


cout << root->element <<


preorder(root->left);


preorder(root->right);
}

/* Get the number of nodes in the tree */

template < typename T >
int BinaryTree < T >::getSize()
{


return size;
}

template < typename T >
void BinaryTree < T >::breadthFirstTraversal()
{


Queue *> queue;



if (root != NULL)

e(root);



while (e() > 0)


{




TreeNode * node = e();




cout << node->element <<





if ( (node->left) != NULL)






e(node->left);





if ( (node->right) != NULL)






e(node->right);


}
}
#endif

int main()
{


BinaryTree < string > tree1;


(


(


(


(


(


(


(



cout <<


r();



cout <<


der();



cout <<


er();



cout <<



int numbers[] =


{




2, 4, 3, 1, 8, 5, 6, 7


};


BinaryTree < int > tree2(numbers, 8);


cout <<


r();



// Test breadth-first


cout <<


hFirstTraversal();



return 0;
}

Exercise17_4
#include
#include
#include
#include
using namespace std;

#ifndef BINARYTREE_H
#define BINARYTREE_H

template < typename T >
class TreeNode
{
public:


T element; // Element contained in the node


TreeNode < T > * left; // Pointer to the left child


TreeNode < T > * right; // Pointer to the right child



TreeNode() // No-arg constructor


{




left = NULL;




next = NULL;


}



TreeNode(T element) // Constructor


{




this->element = element;




left = NULL;




right = NULL;


}
};

template < typename T >
class BinaryTree
{
public:


BinaryTree();


BinaryTree(T elements[], int arraySize);


bool insert(T element);


void inorder();


void preorder();


void postorder();


int getSize();


bool search(T element);


void breadthFirstTraversal();


int depth();

private:


TreeNode < T > * root;


int size;


void inorder(TreeNode < T > * root);


void postorder(TreeNode < T > * root);


void preorder(TreeNode < T > * root);


bool search(T element, TreeNode < T > * root);


int depth(TreeNode * root);
};

template < typename T >
BinaryTree < T >::BinaryTree()
{


root = NULL;


size = 0;
}

template < typename T >
BinaryTree < T >::BinaryTree(T elements[], int arraySize)
{


root = NULL;

-


-


-


-


-


-


-


-



本文更新与2021-01-25 09:24,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/565092.html

C++程序设计Y.Daniel Liang 第十七章课后习题答案的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文