Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace практикум15_1_4
- {
- class Program
- {
- class BinaryTree
- {
- private class Node: IComparable
- {
- public object inf;
- public Node left;
- public Node right;
- public Node(object inf_)
- {
- inf = inf_;
- left = null;
- right = null;
- }
- public static void Add(ref Node r, object nodeinf)
- {
- if (r == null)
- r = new Node(nodeinf);
- else if (((IComparable)(r.inf)).CompareTo(nodeinf) > 0)
- Add(ref r.left, nodeinf);
- else Add(ref r.right, nodeinf);
- }
- //public static void Preorder(Node r)
- //{
- // if (r != null)
- // {
- // Console.Write("{0} ", r.inf);
- // Preorder(r.left);
- // Preorder(r.right);
- // }
- //}
- public static void MultipleNegativeNumbers(Node r, ref int Multiple)
- {
- if (r != null)
- {
- if ((int)r.inf < 0)
- Multiple *= (int)r.inf;
- MultipleNegativeNumbers(r.left, ref Multiple);
- MultipleNegativeNumbers(r.right, ref Multiple);
- }
- }
- public int CompareTo(object obj)
- {
- Node tree_ = (Node)obj;
- if (this.inf == tree_.inf) return 0;
- else if ((int)this.inf < (int)tree_.inf) return -1;
- else return 1;
- }
- }
- Node tree;
- public object Inf
- {
- set { tree.inf = value; }
- get { return tree.inf; }
- }
- public BinaryTree()
- {
- tree = null;
- }
- private BinaryTree(Node r)
- {
- tree = r;
- }
- public void Add(object nodeInf)
- {
- Node.Add(ref tree, nodeInf);
- }
- //public void Preorder()
- //{
- // Node.Preorder(tree);
- //}
- public int MultipleNegativeNumers()
- {
- int Multiple = 1;
- Node.MultipleNegativeNumbers(tree, ref Multiple);
- return Multiple;
- }
- }
- static void Main(string[] args)
- {
- StreamReader fin = new StreamReader ("input.txt");
- string temp = fin.ReadToEnd();
- string[] numbers = temp.Split(' ');
- fin.Close();
- BinaryTree tree = new BinaryTree();
- foreach(string item in numbers)
- tree.Add(int.Parse(item));
- //tree.Preorder();
- //Console.WriteLine();
- Console.WriteLine("Произведение отрицательных узлов дерева: {0}", tree.MultipleNegativeNumers());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement