Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2012, 22:10   #1
evgenya1694
Новичок
Джуниор
 
Регистрация: 02.05.2012
Сообщений: 1
По умолчанию Стек связной список (c++)

Доброе утро/день/вечер всем.=) в общем, задание такое: нужно реализовать структуру данных "стек" , реализовав методы ( push, pop, back, size, clear ) при помощи связного списка. Написать функцию main, содержащую описание стека и моделирующую работу стека. Функция main должна считывать последовательность команд и в зависимости от команды выполнять ту или иную операцию.push n
Добавить в стек число n (значение n задается после команды). Программа должна вывести ok.
pop
Программа должна вывести его значение.
back
Программа должна вывести значение последнего элемента, не удаляя его из стека.
size
Программа должна вывести количество элементов в стеке.
clear
Программа должна очистить стек и вывести ok.
exit
Программа должна вывести bye и завершить работу.
то есть например:
вводим push2 - программа выводит ok
вводим push7 - программа выводит оk
size - 5
pop - 3
size - 1
pop 7
clear ok
size 3
exit программа выводит bye и завершает работу
кое чего уже сделала, а именно конструктор, добавление и удаление элемента из стека. с функцией clear не совсем уверена. с этими связными списками пока полностью не разобралась >< просьба помочь дописать функции back и size если можно..вот именно функции при помощи связного списка. думаю, вывести на экран смогу.
Код:
#include<iostream>
using namespace std;

struct I
{
   int val;
   I* prev;
};

  class Stack
  {
      public:
      I* head;     //head- вершина стека

	  Stack(int val)  //  конструктор
      {
         head = NULL;
      }
    
      int Pop()
      {
         if (head == NULL) cout << "error\n";
		 else{
	        int ret = head->val;
			I* tmp = head; 
			head = head->prev;
			delete tmp;
			return ret;
		 }
      }

	void stack_push(int v)
	{
		I *elem = new I;
		elem->val = v;
		elem->prev = head;
		head = elem;

	}
      void stack::clear()
	{
		for(int i=0; i<=head; i++)
			st[i] = 0;
		cout <<"ok";
		head = 0;
	}
заранее большое спасибо=))

Последний раз редактировалось evgenya1694; 02.05.2012 в 22:24.
evgenya1694 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
стек, очередь, список Alex911 Паскаль, Turbo Pascal, PascalABC.NET 4 12.08.2014 21:19
Pascal (turbo) Динамическая память (список, очередь, стек) Trol_ko Помощь студентам 5 14.09.2011 13:27
Стек, очередь, список (файл) Gromz Паскаль, Turbo Pascal, PascalABC.NET 0 14.06.2011 16:42
Стек через односвязный список (Си) Nox4o Помощь студентам 2 25.05.2011 18:19
Стек,очередь,список и дерево. Lerika21 Помощь студентам 0 22.05.2010 19:31