Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программа работающая со стеком(C++)

15K
27 декабря 2005 года
Tai
1 / / 27.12.2005
У нас препод в универе бешенный пристал ко всем чтобы мы ему на С++ написали программу, а я в жизни на С не программировал МОжет быть сможет кто-нибудь помочь??? Препод типа говорит, что нужно зажачу сделать в двух вариантах через динамическую память и через STL ( я даже не пойму что это такое). А задача такая: Реализовать программу, работающую со стеком данных произвольного типа. ( В проге надо реализовать 1) занесениее данных в стек 2) удаление данных из стека 3) распечатка данных ). Заранее благодарен!!
Помогите бедному студенту!
4
27 декабря 2005 года
mike
3.7K / / 01.10.2002
Ну чтож, ничего невозможного.

1. Изучаешь синтаксис C/C++
http://www.codenet.ru/progr/cpp/

2. Изучаешь IDE MSVC
http://www.codenet.ru/progr/visualc/

3. Разбираешься с STL
http://www.codenet.ru/progr/cpp/istl.php

И все !
9.8K
28 декабря 2005 года
linker3
28 / / 29.11.2005
Цитата:
Originally posted by Tai
Спасибо тебе Linker3. Препод покряхтел своей головой и сказал что код правельный (обычно такого от него не дождешься). Вот только он меня заставил коментарии писать к каждой строке. МОжешь рассказать что там к чему?


Код:
#include<iostream.h>
typedef struct el{ //стуктура для элемента стэка
                  int val; //тип элементов
                  el *next; //указатель на следущий
                 }element, *pelement; //указатель и просто статический тип на основе структуры
pelement New(){ //своя функция для выделения памяти под новый элемент
 pelement p; //новая переменная-указатель

 p=new element; //выделяем память размером со структуру
 p->next = 0; //адрес следующего элемента равен нулю

 return p; //возвращаем адрес элемента
}
pelement create(int val, pelement p){ //создаём стэк, в качестве параметров функции указатель на вершину и данные
 if(!p){ p=New(); p->val = val; return p;} //если вершина не существует, тоесть стэк пустой то создаём его
 else{ pelement t; t = New(); t->val = val; t->next = p; return t;} //иначе кидаем новый элемент и адрес вершини меняеться, поскольку стэк
}
void print(pelement p){ //распечатка стека, в качестве параметра вершина стэка
 for(pelement t = p; t!=0; t=t->next) //пока адрес элемента не равен нулю, тоесть конец стэка - печатать стэк
  cout<<t->val; //собственно сама распечатка значения текущего элемента
}
main(){ //главная функция
 int mas[5]; //массив из пяти цэлых
 pelement p=0; //пустой стэк
 cout<<"Input elements of array: "<<endl; //запрос на ввод масива
 for(int i=0; i<5; i++){ пока не конец массива
  cin>>mas; //вводим значение элемента
  p = create(mas, p); //закидываем в стэк
 }
 cout<<"Steck: "<<endl; //запрос на распечатку
 print(p); //собственно сама распечтка

 return 0; //успешное завершение
}

С Stl:
Код:
#include<iostream> //библиотека потоков
#include<stack> //библиотека шаблона класса для стэка
using namespace std; //пространство имён std
main(){ //главная функция
 stack<int> stk; //конструктор на пустой стэк из целых элементов
 int i; //целая переменная
 int key=0; //....

 cout<<"Input digits, edn of input is value -1: ";//вводим значения пока не будет значение -1
 while(){ //бесконечный цикл
  cin>>key; //вводим значение
  if(key==-1) break; //если -1 то выход из цыкла
  stk.push(key); //заносим в стэк
 }
 while(!stk.empty()){ //пока стэк не пустой
  i = stk.top(); //извлекаем значение
  cout<<i; //печатаем значение
  stk.pop(); //перемещаемся на следующий элемент
 }

 return 0;//успешное завершение
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог