Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C] Пара стеков ограниченных в совокупности


Автор: Соня 7.10.2006, 11:11
Люди! Помогите, please. Вроде бы прочитала теорию в книжке, а как писать проги-не знаю...
 smile Пара стеков ограниченных в совокупности на базе одномерного массива

Просьба: пишите попроще. Я только учусь...

Автор: Oleg_Ci 7.10.2006, 19:34
Тебе точно на С надо, или всётаки С++ ?
Вот стёк из массива
Код

#include <stdio.h>
#define len 20 // максимальное кодичество чисел в стёке
int count = 0;    // количество чисел в стёке
int mas[len];    // массив для стёка

void push( int num ) // добавить в стёк число
{
    mas[count++] = num;

int pop ( void ) // "взять" число с верха стёка, и удалить его от туда
{
    return mas[--count];    
}

//___________ MAIN ____________
int main(void)
{
// "заносим" числа в стёк
    push(10);
    push(14);
    push(1);
    push(4);
    push(50);
    push(100);
// "снимаем" из стёка и выводим на консоль
    while ( count )
        printf("number %d = %d\n", count+1, pop() );
    getchar();
    return 0;
}

Автор: maxim1000 7.10.2006, 20:03
первый стек: из начала массива растёт вперёд
второй стек: из конца массива растёт назад
т.е. надо написать две пары функций push/pop (ну или одну с соответствующими параметрами)
если суммарное количество элементов стеков не превышает размера массива, они друг друга и не заметят...

Автор: Соня 8.10.2006, 01:28
Спасибо большое!

Автор: F18 8.6.2008, 10:22
[C++]:работа со стеком:
Задача:::В текстовом файле записано без ошибок логическое выражение следующего вида:
<лог.выр.>::=true | false | !<лог.выр> | <лог.выр>.>&&<лог.выр> |<лог.выр.> || <лог.выр.>
Используя стек, вычислить значение этого выражения с учетом общепринятого приоритета операций.

я всю голову сломал помогите пожалуйста 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)