Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- using System.Text;
- using Unit4.CollectionsLib;
- namespace Lab_15_02
- {
- class Program
- {
- static Random Num = new Random();
- static BinTreeNode<int> BuildT(int x)
- {
- int a;
- if (x < 0) return null;
- if (x == 0) return new BinTreeNode<int>(Num.Next(1, 21));
- if (x > 0)
- {
- a = Num.Next(1, 4);
- if (a == 1)
- return new BinTreeNode<int>(null, Num.Next(1, 21), BuildT(x - 1));
- if (a == 2)
- return new BinTreeNode<int>(BuildT(x - 1), Num.Next(1, 21), null);
- if (a == 3)
- return new BinTreeNode<int>(BuildT(x - 1), Num.Next(1, 21), BuildT(x - 1));
- }
- return null;
- }
- static int[] a = new int[5] { 14, 1, 73, 8, 94 };
- //public static void sortbouble(int[] a)
- //{
- // int i, j, temp;
- // for (i = 0; i < a.Length; i++)
- // for (j = 0; j < a.Length - i - 1; j++)
- // {
- // if (a[j] > a[j + 1])
- // {
- // temp = a[j + 1];
- // a[j + 1] = a[j];
- // a[j] = temp;
- // }
- // }
- // for (i = 0; i < a.Length; i++)
- // Console.Write(a[i] + ",");
- //}
- //public static int biginrang(int[] a, int start, int stop)
- //{
- // int index = start;
- // int i, max = a[start];
- // for (i = start; i < stop; i++)
- // {
- // if (a[i] > max)
- // {
- // max = a[i];
- // index = i;
- // }
- // }
- // return index;
- //}
- //public static void keeploop(int[] a)
- //{
- // int i, temp1, temp2, p;
- // for (i = a.Length; i > 0; i--)
- // {
- // p = biginrang(a, 0, i);
- // temp1 = a[p];
- // temp2 = a[i - 1];
- // a[p] = temp2;
- // a[i - 1] = temp1;
- // }
- // for (i = 0; i < a.Length; i++)
- // Console.Write(a[i] + ",");
- //}
- public static BinTreeNode<int> AVL(int[] a, int i, int j)
- {
- if (i > j) return null;
- int mid = (i + j) / 2;
- int r = a[mid];
- BinTreeNode<int> t1 = AVL(a, i, mid - 1);
- BinTreeNode<int> t2 = AVL(a, mid + 1, j);
- return new BinTreeNode<int>(t1, r, t2);
- }
- public static Stack<ArithProg> ArithmeticStack(Stack<int> s)
- {
- Stack<ArithProg> s2 = new Stack<ArithProg>();
- int a1, d, n, tmp;
- while (!s.IsEmpty())
- {
- n = 1;
- a1 = s.Pop();
- if (!s.IsEmpty())
- {
- tmp = s.Pop();
- d = tmp - a1;
- n++;
- if (!s.IsEmpty())
- {
- while (d == s.Top() - tmp)
- {
- n++;
- tmp = s.Pop();
- }
- }
- s.Push(tmp);
- s2.Push(new ArithProg(a1, d, n));
- }
- }
- s2.Pop();
- s2.Top().N++;
- return s2;
- }
- static void Main(string[] args)
- {
- int i = 0;
- int j = 4;
- // sortbouble(a);
- //keeploop(a);
- // Console .Write ( biginrang(a, 0, a.Length ));
- //BinTreeNode<int> p = AVL(a, i, j);
- //BinTreeUtils.ShowTree(p);
- Stack<int> s = new Stack<int>();
- s.Push(30);
- s.Push(26);
- s.Push(20);
- s.Push(14);
- s.Push(21);
- s.Push(18);
- s.Push(15);
- s.Push(12);
- s.Push(13);
- s.Push(14);
- s.Push(15);
- s.Push(16);
- s.Push(17);
- Console.WriteLine(s.ToString());
- Console.WriteLine(ArithmeticStack(s).ToString());
- }
- }
- }
- ///////////////
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Lab_15_02
- {
- public class ArithProg
- {
- private int a1;
- private int d;
- private int n;
- public ArithProg(int a1, int d, int n)
- {
- this.a1 = a1;
- this.d = d;
- this.n = n;
- }
- public int A1
- {
- get { return this.a1; }
- set { this.a1 = value; }
- }
- public int D
- {
- get { return this.d; }
- set { this.d = value; }
- }
- public int N
- {
- get { return this.n; }
- set { this.n = value; }
- }
- public override string ToString()
- {
- return "first " + a1 + "\n" + "diff " + d + "\namount " + n + "\n\n";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement