46221

Стек

Доклад

Информатика, кибернетика и программирование

Типичный пример модуля определение стека. Здесь необходимо решить такие задачи: Предоставить пользователю интерфейс для стека например функции push и pop. Гарантировать что представление стека например в виде массива элементов будет доступно лишь через интерфейс пользователя. Обеспечивать инициализацию стека перед первым его использованием.

Русский

2013-11-20

14.63 KB

0 чел.

Вопрос7. Стек

Со временем при в проектировании программ акцент сместился с организации процедур на

организацию структур данных.  Помимо всего прочего это вызвано и ростом размеров программ.

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

Парадигма программирования приобрела вид:

Определите, какие модули нужны; поделите программу так, чтобы данные были скрыты в этих модулях

Эта парадигма известна также как  "принцип сокрытия данных".  Если в языке нет возможности

сгруппировать связанные процедуры вместе с данными,  то он плохо поддерживает модульный стиль

программирования. Теперь метод написания "хороших" процедур применяется для отдельных процедур

модуля. Типичный пример модуля - определение стека. Здесь необходимо решить такие задачи:

[1]  Предоставить пользователю интерфейс для стека (например, функции push () и pop ()).

[2]  Гарантировать, что представление стека (например, в виде массива элементов) будет доступно

лишь через интерфейс пользователя.

[3]  Обеспечивать инициализацию стека перед первым его использованием.

Использовать стек можно так:

#include "stack.h"  // используем интерфейс стека

void some_function ()

{

push ( 'c' );

char c = pop ();

if ( c != 'c' )  error ( "невозможно" );

}

Допустим,  что описание интерфейса находится в файле stack.h,  тогда реализацию стека можно

определить следующим образом:

#include "stack.h"  // используем интерфейс стека

static char v [ stack_size ];     // ``static'' означает локальный

                                                   // в данном файле/модуле

static char * p = v;  // стек вначале пуст

void push ( char c )

{

//проверить на переполнение и поместить в стек

}

char pop ()

{

//проверить, не пуст ли стек, и считать из него

}


 

А также другие работы, которые могут Вас заинтересовать

10284. Детерминизм (определять, ограничивать) 13.64 KB
  Детерминизм определять ограничивать философское учение об объективной закономерной взаимосвязи и взаимообусловленности явлений материального и духовного мира. Детерминизм учение о первоначальной определяемости всех происходящих в мире процессов включая все пр...
10285. Материалистическая диалектика 10.77 KB
  Материалистическая диалектика термин марксистсколенинской философии. В широком смысле употребляется в качестве синонима диалектического материализма. В более специальном диалектика развернутая в рамках диалектического материализма как общая теория развития лог...
10286. Философия Индии 15.71 KB
  Под древневосточной философией понимают совокупность религиознофилософских систем существовавших в цивилизациях Китая и Индии. Сохранилось достаточное количество письменных источников дающих возможность составить представление о сущности и содержании древневос
10287. Философско-религиозные системы Древнего Китая 15.28 KB
  Культ умерших предков исходил из того, что человек наделён двумя душами: материальной и духовной . Первая после смерти уходит вместе с телом в землю, а вторая отправляется на Небо. В домах китайцев сооружались алтари, где ставились таблички в честь умерших предков, проводились церемонии.
10288. Иммануил Кант 12.24 KB
  Иммануил Кант родоначальник немецкого классического идеализма один из величайших философов. Он родился в Кенигсберге был типичным кабинетным ученым-философом никогда не выезжал за пределы города. Его жизнь делится на 2 периода: 1. Докритический. В этот период Кант пис...
10289. Аристотель и его учение 19.06 KB
  Аристотель родился в Стагире именно поэтому его иногда называют Стагиритом. В семнадцатилетнем возрасте Аристотель становится слушателем Платоновской академии. после покинув академию он восемь лет был воспитателем знаменитого царя и полководца Александра Македонско
10290. Переход количества в качество 10.73 KB
  Переход количества в качество Материалистическая диалектика термин марксистсколенинской философии. В широком смысле употребляется в качестве синонима диалектического материализма. В более специальном диалектика развернутая в рамках диалектического материализ
10291. Готфрид Вильгельм Лейбниц - немецкий философ-рационалист 11.55 KB
  Готфрид Вильгельм Лейбниц немецкий философрационалист. Одновременно с Ньютоном разработал основы дифференциального и интегрального исчисления предвосхитил некоторые идеи математической логики выдвинул идею машинизации мыслительного процесса. Он выдвинул учение...
10292. Джон Локк - английский философ-просветитель 15.24 KB
  Джон Локк английский философ-просветитель самый видный представитель эмпиризма. По его мнению на основе ощущений человек формирует свои знания и благодаря этому мыслит. Локк выдвинул теорию чистой доски. Согласно этой теории человек изначально представляет собой чи...