Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
2 / 2 / 1
Регистрация: 01.11.2011
Сообщений: 23
1

Необходимо реализовать структуру данных (стек строк) в виде класса или набора классов, не используя стандартные классы

15.02.2012, 20:31. Показов 3154. Ответов 3
Метки нет (Все метки)

Здравствуйте!
Помогите пожалуйста разобраться с поставленной задачей. Необходимо реализовать структуру данных (стек строк) в виде класса или набора классов, не используя стандартные классы .Net для представления коллекций. Разрешается использовать только массивы.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2012, 20:31
Ответы с готовыми решениями:

Реализовать структуру данных «очередь строк» в виде класса
Реализовать структуру данных «очередь строк» в виде класса (набора классов). Стандартные...

Необходимо реализовать структуру для хранения данных в виде бинарного дерева
Ассоциативный массив должен храниться в виде бинарного дерева

Дан символьный массив или строка. Найдите количество различных символов в нём, используя структуру данных стек
напишите программу решения задачи. Дан символьный массив или строка. найдите количество различных...

Не используя массивов, коллекций, а также класса List<T> и производных от него, реализовать программно структуру данных
Реализовать операции списка: -добавление элемента -удаление элемента -определение длины списка...

3
Эксперт Java
4077 / 3811 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
20.02.2012, 09:32 2
Классический стек. Только необходимые методы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    class StringStack
    {
        private string[] values = new string[10];
        private int count = 0;
 
        public void push(string value)
        {
            if (count == values.Length)
                Array.Resize(ref values, (int) Math.Ceiling(count * 1.5));
            values[count++] = value;
        }
 
        public string pop()
        {
            if (count == 0)
                throw new IndexOutOfRangeException();
            return values[--count];
        }
    }
1
Эксперт .NET
15449 / 11712 / 3076
Регистрация: 17.09.2011
Сообщений: 19,603
20.02.2012, 12:05 3
Цитата Сообщение от turbanoff Посмотреть сообщение
Только необходимые методы
А где же Peek()?

Кстати, есть один момент, который частенько упускают при реализации собственных коллекций.
C#
1
2
3
4
5
6
        public string pop()
        {
            if (count == 0)
                throw new IndexOutOfRangeException();
            return values[--count];
        }
Удаление элемента происходит путем уменьшения количества элементов на единицу, при этом ссылка на "удаленный" элемент так и остается лежать в массиве до тех пор, пока ее не перезапишут вызовом Push. Это значит, что хранящийся на этой позиции элемент не будет удален сборщиком, даже если более нигде в приложении этот объект не используется.
Правильный вариант в данном случае:
C#
1
2
3
string value = values[--count];
values[count] = null;
return value;
В случае с генериками:
C#
1
2
3
T value = values[--count];
values[count] = default(T);
return value;
Оно, конечно, понятно, что в большинстве случаев элементы в стеке перезаписываются часто, но все же надо стремиться к идеалу
2
Эксперт Java
4077 / 3811 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
20.02.2012, 12:42 4
Цитата Сообщение от kolorotur Посмотреть сообщение
А где же Peek()?
Цитата Сообщение от turbanoff Посмотреть сообщение
Только необходимые методы
Peek не необходим, так как реализуется через 2 представленных
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2012, 12:42

Реализовать программу, используя для хранения экземпляров разработанных классов стандартные параметризованные коллекции
using System; using System.Collections.Generic; using System.Text; namespace...

Реализовать классы «стек» и «очередь» наследованием от базового класса «двусвязный список»
Реализовать классы «стек» и «очередь» наследованием от базового класса «двусвязный список». Создать...

Реализовать классы «стек» и «очередь» наследованием от базового класса «двусвязный список»
Всем добрый вечер! Помогите пожалуйста с лабораторной работой, дело в том что скоро сдавать, а я в...

Реализовать структуру данных стек, содержащую следующие методы:
Реализовать структуру данных стек, содержащую следующие методы: добавить элемент в стек, удалить...

Реализовать пользовательские классы - дек, стек (LIFO), очередь (FIFO) на базе класса list библиотеки STL
Создать пользовательские классы - дек, стек (LIFO), очередь (FIFO) на базе класса list библиотеки...

Реализовать классы для структур данных «стек» и «очередь»
дали такое задание, не понимаю что делать.. Реализовать классы для структур данных «стек» и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.