示例#1
0
        Node last;  // Последний узел списка.
        public void Add(Architect value)
        {
            Node tmp = new Node();

            tmp.data = value;
            tmp.next = null;
            if (first == null)
            {
                first = tmp;
                last  = tmp;
            }
            else
            {
                last.next = tmp;
                last      = tmp;
            }
        }
示例#2
0
        private static void Main(string[] args)
        {
            string outputtext;

            using (var fstream = new FileStream("new.txt", FileMode.OpenOrCreate))
            {
                // преобразуем строку в байты
                var array = new byte[fstream.Length];
                // считываем данные
                fstream.Read(array, 0, array.Length);
                // декодируем байты в строку
                outputtext = Encoding.Default.GetString(array);
            }


            var qc = new QueueCustom();

            foreach (var fullArray in outputtext.Split('\n'))
            {
                if (fullArray != string.Empty)
                {
                    var a    = fullArray.Split(':');
                    var b    = a[1].Split(' ');
                    var data =
                        Assembly.LoadFrom("Kursach.exe")
                        .DefinedTypes.ToList()
                        .FindAll(type => type.IsSubclassOf(typeof(Architect))).ToArray();


                    switch (a[0])
                    {
                    case "Религия":
                        var relig = (Relig)CreateInstance(Type.GetType(data[2].FullName), b[1], b[0]);
                        qc.Add(relig);
                        break;

                    case "Правительство":
                        var pravit = (Pravit)CreateInstance(Type.GetType(data[1].FullName), b[1], b[0]);
                        qc.Add(pravit);
                        break;

                    case "Гражданство":
                        var grajdan = (Grajdan)CreateInstance(Type.GetType(data[0].FullName), b[1], b[0]);
                        qc.Add(grajdan);
                        break;
                    }
                }
            }
            var sortedArray = new Architect[qc.Count];

            for (var i = 0; i < qc.Count; i++)
            {
                sortedArray[i] = qc[i];
            }
            var heap = new Heap <Architect>(sortedArray);

            heap.HeapSort();

            var savingList = new List <string>();

            for (var i = 0; i < sortedArray.Length; i++)
            {
                savingList.Add(sortedArray[i].ToString());
            }

            File.WriteAllLines("output.txt", savingList);
        }
示例#3
0
        public int CompareTo(object obj)
        {
            Architect other = (Architect)obj;

            return(String.Compare(Name, other.Name, StringComparison.Ordinal));
        }