Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> СТЕК, Нужна информация о приминении стека 
:(
    Опции темы
AlexDzot
  Дата 8.6.2010, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.6.2010

Репутация: нет
Всего: нет



Тема курсовой "демонстрационная программа работы со списками типа стек".

 прогу я сделал, а теперь нужно сделать объяснительную записку к курсовой.
 в записке нужно проанализировать что такое стек и где он применяется.

что такое стек я знаю, а вот с применением возникли проблемы(под приминением имею ввиду использование данной динамическо структуры).

Мне препод сказал,что информации много, но я почему-то ненайду хороших источников, на которые можно опираться.


Если кто имеет данную информацию, пожалуйста дайте ссылки, пожалуйста   smile 
ПОМОГИТЕ!
PM MAIL   Вверх
boostcoder
Дата 8.6.2010, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(AlexDzot @  8.6.2010,  19:12 Найти цитируемый пост)
что такое стек я знаю

Цитата(AlexDzot @  8.6.2010,  19:12 Найти цитируемый пост)
а вот с применением возникли проблемы

как же ты прогу писал? smile

Добавлено через 44 секунды
http://www.cplusplus.com/reference/stl/stack/
PM WWW   Вверх
AlexDzot
Дата 8.6.2010, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.6.2010

Репутация: нет
Всего: нет



В проге понятно всё как, мне нужна информация где они применяются,для чего,ну в оющем всё о стеках
PM MAIL   Вверх
boostcoder
Дата 8.6.2010, 19:53 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(AlexDzot @  8.6.2010,  19:44 Найти цитируемый пост)
В проге понятно всё

Цитата(AlexDzot @  8.6.2010,  19:44 Найти цитируемый пост)
нужна информация где они применяются,для чего,ну в оющем всё о стеках 

если ты не знаешь что такое стек, как ты писал код?! с фонаря взял? во сне увидел? ###.
кури ссылку
PM WWW   Вверх
AlexDzot
Дата 8.6.2010, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.6.2010

Репутация: нет
Всего: нет



Код

#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <math.h>
 
using namespace std;
 
struct Stack //объявление структутры стека
{
        int info; //информационная часть элемента, например int
        Stack *next; //адресная часть - указатель на следующий элемент
} *begin, *t; //указатель вершины стека (*begin), временный (*t)
 
Stack* InStack(Stack*, int); //функция формирования элемента стека
void View(Stack*); //функция просмотра стека
void Delete(Stack**); //функция освобождения памяти, занятой стеком
int rand(void); //рандом
 
Stack* InStack(Stack *p, int in)
{
        Stack *t = new Stack; //Захватываем память для элемента
        t->info = in; //формируем информационную часть
        t->next = p; //формируем адресную часть
        return t;
}
 
void View(Stack *p)
{
        Stack *t = p; //устанавливаем текущий указатель на начало списка
        while(t != NULL) //начинаем цикл, работающий до тех пор, пока указатель t не равен NULL (признак окончания списка)
        {
                cout << " " << t->info << endl; //вывод на экран информационной части
                t = t->next; //текущий указатель переставляем на следующий элемент
        }
}
 
void Delete(Stack **p)
{
        while(*p != NULL)
        {
                t = *p;
                *p = (*p)->next;
                delete t;
        }
}
 
void main()
{
        int i, in, n, kod;
        while(true)
        {
                cout << "\n\tCreate - 1.\n\tAdd - 2.\n\tView - 3.\n\tDelete - 4.\n\tEXIT - 0. : ";
                cin >> kod;
                switch(kod)
                {
                case 1: case 2:
                        if (kod == 1 && begin != NULL)
                        {
                                //Если создаем новый стек, должны освободить память, занятую предыдущим
                                cout << "Clear memory!" << endl;
                                break;
                        }
                        cout << "Input kol = ";
                        cin >> n;
                        for (i = 1; i <= n; i++)
                        {
                                in = rand();
                                begin = InStack(begin, in); //добавление нового элемента в стек, вершиной которого является указатель begin
                        }
                        if (kod == 1) cout << "Create " << n << endl;
                        else cout << "Add " << n << endl;
                        break;
 
                case 3:
                        if (!begin)
                        {
                                cout << "Stack pust!" << endl;
                                break;
                        }
                        cout << "---Stack---" << endl;
                        View(begin);
                        break;
                
                case 4:
                        Delete(&begin); //после выполнения функции указатель на вершину будет равен NULL
                        cout << "Memory free!" << endl;
                        break;
 
                case 0:
                        if (begin != NULL)
                                Delete(&begin);
                        return;
 
                }
        }
}


Добавлено через 49 секунд
Что такое стек мне понятно.

Добавлено через 1 минуту и 47 секунд
У меня нет информации об использовании,  мне информация нужна на которую я смогу опираться  в курсовой
PM MAIL   Вверх
djamshud
Дата 8.6.2010, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Самое главное примерение стека - это call stack (стек вызовов функций). http://ru.wikipedia.org/wiki/Стек_вызовов

А так временами используется в подобных ситуациях, когда нужно протащить что-то вперед, а потом безболезненно откатиться назад.

Добавлено через 1 минуту и 6 секунд
Вы написали очень неудобный стек с полностью ручным управлением.

Добавлено через 2 минуты и 32 секунды
И магические константы в кейсах тоже очень интересны...
И машанина из си и с++ хороша...

Не хотите переписать?:)


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
boostcoder
Дата 8.6.2010, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(djamshud @  8.6.2010,  20:01 Найти цитируемый пост)
Самое главное примерение стека - это call stack (стек вызовов функций). http://ru.wikipedia.org/wiki/Стек_вызовов
А так временами используется в подобных ситуациях, когда нужно протащить что-то вперед, а потом безболезненно откатиться назад.

я так понимаю речь о контейнере типа стек smile 
Цитата(AlexDzot @  8.6.2010,  19:12 Найти цитируемый пост)
Тема курсовой "демонстрационная программа работы со списками типа стек".


PM WWW   Вверх
AlexDzot
Дата 8.6.2010, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.6.2010

Репутация: нет
Всего: нет



Времени уже нет преписывать((((((
PM MAIL   Вверх
djamshud
Дата 8.6.2010, 20:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



>я так понимаю речь о контейнере типа стек

Да не важно. В курсаче нужно рассказать что такое стек, где, для чего применяется. Колл-стек - хорошая, годная, наглядная демонстрация применения самой идеи стека. А от этого уже дальше можно крутить, что на этом же принципе создается есть структура данных "стек", часто применяется в решении рекурсивных задач и пошло, поехало. Ну и заключение: вот я написал реализацию этой структуры (хотя реализован как раз таки скорее сам принцип) и бла-бла-бла.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
AlexDzot
Дата 8.6.2010, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.6.2010

Репутация: нет
Всего: нет



Цитата(djamshud @  8.6.2010,  20:19 Найти цитируемый пост)
 я написал реализацию этой структуры (хотя реализован как раз таки скорее сам принцип)


ну так мне надо  было показать как работает стек, я и показал.

Что не так??????
PM MAIL   Вверх
djamshud
Дата 8.6.2010, 20:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Я не знаю, что вам надо было показать, я написал, что вы показали. И предложил, от чего отталкиваться в написании текста курсача. А как в нем представить свою работу - дело ваше.

И нечего на меня кричать:).


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
xvr
Дата 9.6.2010, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(AlexDzot @  8.6.2010,  19:56 Найти цитируемый пост)
У меня нет информации об использовании,  мне информация нужна на которую я смогу опираться  в курсовой 
Применяется в разных виртуальных машинах (для байт кода), см:
  •  Обратная польская запись
  •  FORTH
  •  Java VM
  •  PostScript


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.