首页 > 代码库 > Sicily-1156
Sicily-1156
一. 模仿树的的先序遍历。范围是1000个节点。用数组存储节点的信息。
二. 要注意的是,头结点是不确定的,所以在前序遍历之前要找出头结点,除了头结点的下标值出现一次之外,其他结点的下标值都会出现两次,根据这个特征可以利用异或运算(^),算出头结点。
三. 源码
1 // 2 // main.cpp 3 // sicily-1156 4 // 5 // Created by ashley on 14-10-12. 6 // Copyright (c) 2014年 ashley. All rights reserved. 7 // 8 9 #include <iostream>10 using namespace std;11 typedef struct12 {13 char element;14 int leftChild;15 int rightChild;16 }node;17 node binaryTree[1001];18 void preorder(int front)19 {20 cout << binaryTree[front].element;21 if (binaryTree[front].leftChild != 0) {22 preorder(binaryTree[front].leftChild);23 }24 if (binaryTree[front].rightChild != 0) {25 preorder(binaryTree[front].rightChild);26 }27 }28 int main(int argc, const char * argv[])29 {30 int counts = 0;31 char ele;32 int number;33 int left, right;34 while (cin >> counts) {35 int source = 0;36 for (int i = 0; i < counts; i++) {37 cin >> number >> ele >> left >> right;38 source = source ^ left ^ right ^ number;39 binaryTree[number] = node{ele, left, right};40 }41 preorder(source);42 cout << endl;43 }44 return 0;45 }
Sicily-1156
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。