🗊 Презентация Абстрактный тип данных. Стек

Нажмите для полного просмотра!
Абстрактный тип данных. Стек, слайд №1 Абстрактный тип данных. Стек, слайд №2 Абстрактный тип данных. Стек, слайд №3 Абстрактный тип данных. Стек, слайд №4 Абстрактный тип данных. Стек, слайд №5 Абстрактный тип данных. Стек, слайд №6 Абстрактный тип данных. Стек, слайд №7 Абстрактный тип данных. Стек, слайд №8 Абстрактный тип данных. Стек, слайд №9 Абстрактный тип данных. Стек, слайд №10 Абстрактный тип данных. Стек, слайд №11 Абстрактный тип данных. Стек, слайд №12 Абстрактный тип данных. Стек, слайд №13 Абстрактный тип данных. Стек, слайд №14 Абстрактный тип данных. Стек, слайд №15 Абстрактный тип данных. Стек, слайд №16 Абстрактный тип данных. Стек, слайд №17 Абстрактный тип данных. Стек, слайд №18 Абстрактный тип данных. Стек, слайд №19 Абстрактный тип данных. Стек, слайд №20 Абстрактный тип данных. Стек, слайд №21 Абстрактный тип данных. Стек, слайд №22 Абстрактный тип данных. Стек, слайд №23 Абстрактный тип данных. Стек, слайд №24 Абстрактный тип данных. Стек, слайд №25 Абстрактный тип данных. Стек, слайд №26 Абстрактный тип данных. Стек, слайд №27 Абстрактный тип данных. Стек, слайд №28 Абстрактный тип данных. Стек, слайд №29 Абстрактный тип данных. Стек, слайд №30 Абстрактный тип данных. Стек, слайд №31 Абстрактный тип данных. Стек, слайд №32 Абстрактный тип данных. Стек, слайд №33 Абстрактный тип данных. Стек, слайд №34 Абстрактный тип данных. Стек, слайд №35 Абстрактный тип данных. Стек, слайд №36 Абстрактный тип данных. Стек, слайд №37 Абстрактный тип данных. Стек, слайд №38 Абстрактный тип данных. Стек, слайд №39 Абстрактный тип данных. Стек, слайд №40 Абстрактный тип данных. Стек, слайд №41 Абстрактный тип данных. Стек, слайд №42 Абстрактный тип данных. Стек, слайд №43 Абстрактный тип данных. Стек, слайд №44

Содержание

Вы можете ознакомиться и скачать презентацию на тему Абстрактный тип данных. Стек. Доклад-сообщение содержит 44 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Абстрактный тип данных стек Примеры использования абстрактного стека
Описание слайда:
Абстрактный тип данных стек Примеры использования абстрактного стека

Слайд 2


Абстрактный тип данных Стек Стеком называется последовательность элементов одного и того же типа, к которой можно добавлять новые элементы и удалять...
Описание слайда:
Абстрактный тип данных Стек Стеком называется последовательность элементов одного и того же типа, к которой можно добавлять новые элементы и удалять элементы последовательности. Причем как добавление элементов, так и удаление элементов производится с одного и того же конца последовательности, называемого вершиной стека.

Слайд 3


Операции со стеком Cоздание пустого стека Уничтожение стека Определение пуст ли стек Добавление нового элемента в стек Удаление верхнего элемента из...
Описание слайда:
Операции со стеком Cоздание пустого стека Уничтожение стека Определение пуст ли стек Добавление нового элемента в стек Удаление верхнего элемента из стека Извлечение из стека значения верхнего элемента (вершины стека) без его удаления

Слайд 4


Диаграмма абстрактного стека
Описание слайда:
Диаграмма абстрактного стека

Слайд 5


Операции со стеком createStack() - создает пустой стек destroyStack ()– уничтожает стек isEmpty() – функция определения пустоты стека ли стек...
Описание слайда:
Операции со стеком createStack() - создает пустой стек destroyStack ()– уничтожает стек isEmpty() – функция определения пустоты стека ли стек push(NewElement) – добавляет новый элемент NewElement в стек pop() – удаляет верхний элемент из стека getTop()– возвращает значение верхнего элемента (вершины стека) без его удаления

Слайд 6


СТЕК
Описание слайда:
СТЕК

Слайд 7


Реализация ограниченного стека в виде массива Размер массива определяет максимальное число элементов в стеке Необходимо определить указатель top...
Описание слайда:
Реализация ограниченного стека в виде массива Размер массива определяет максимальное число элементов в стеке Необходимо определить указатель top положения верхнего элемента При вставке элемента производится увеличение значения top на единицу При удалении элемента производится уменьшение значения top на единицу

Слайд 8


Реализация ограниченного стека в виде массива Пусть TypeItem – тип элементов стека Max_size –максимальный размер стека Stack [Max_size] –массив...
Описание слайда:
Реализация ограниченного стека в виде массива Пусть TypeItem – тип элементов стека Max_size –максимальный размер стека Stack [Max_size] –массив элементов стека top - указатель на вершину стека

Слайд 9


Основные операции со стеком void createStack() { top=0;} void pop() {if ( top==0) cout
Описание слайда:
Основные операции со стеком void createStack() { top=0;} void pop() {if ( top==0) cout

Слайд 10


Основные операции со стеком TypeItem getTop() {if (top==0) cout
Описание слайда:
Основные операции со стеком TypeItem getTop() {if (top==0) cout

Слайд 11


Ограниченный стек Еще одной реализацией ограниченного стека является описание стека с помощью динамического массива Достоинством этого метода...
Описание слайда:
Ограниченный стек Еще одной реализацией ограниченного стека является описание стека с помощью динамического массива Достоинством этого метода является возможность выделения памяти по мере необходимости

Слайд 12


Ограниченный стек Struct Stack { TypeItem *array; int count,max_size; }
Описание слайда:
Ограниченный стек Struct Stack { TypeItem *array; int count,max_size; }

Слайд 13


Реализация стека в виде связного списка Пусть StackItemType – тип элементов стека // Узел стека Struct StackNode { StackItemType Item; StackNode *...
Описание слайда:
Реализация стека в виде связного списка Пусть StackItemType – тип элементов стека // Узел стека Struct StackNode { StackItemType Item; StackNode * next; }; StackNode *top; // Указатель на первый элемент

Слайд 14


Реализация стека в виде связного списка class Stack { public: // Конструкторы и деструкторы: // Конструктор по умолчанию Stack(); // Конструктор...
Описание слайда:
Реализация стека в виде связного списка class Stack { public: // Конструкторы и деструкторы: // Конструктор по умолчанию Stack(); // Конструктор копирования Stack(const Stack& aStack) ; // Деструктор ~Stack();

Слайд 15


Реализация стека в виде связного списка // Операции над стеком: int isEmpty() const; void push(StackItemType newItem) void pop() void...
Описание слайда:
Реализация стека в виде связного списка // Операции над стеком: int isEmpty() const; void push(StackItemType newItem) void pop() void pop(StackItemType& stackTop) void getTop(StackItemType& stackTop ) const

Слайд 16


Реализация стека в виде связного списка private: struct StackNode // Узел стека { StackItemType item; //Данные, содержащиеся //в узле стека StackNode...
Описание слайда:
Реализация стека в виде связного списка private: struct StackNode // Узел стека { StackItemType item; //Данные, содержащиеся //в узле стека StackNode *next; // Указатель на следующий узел }; // end struct StackNode *top; // Указатель на первый элемент стека }; // Конец класса Stack

Слайд 17


Конструкторы и деструкторы: Stack::Stack() : top(NULL) {} // Конец Конструктора по умолчанию Stack::Stack(const Stack& aStack) {//первый узел if...
Описание слайда:
Конструкторы и деструкторы: Stack::Stack() : top(NULL) {} // Конец Конструктора по умолчанию Stack::Stack(const Stack& aStack) {//первый узел if (aStack.top == NULL) top=NULL; else { top = new StackNode; top->item = aStack.top->item;}

Слайд 18


Конструкторы и деструкторы: //остальная часть списка StackNode *newPtr=top; for(StackNode *cur= aStack.top->next; cur!=NULL; cur=cur->next) {...
Описание слайда:
Конструкторы и деструкторы: //остальная часть списка StackNode *newPtr=top; for(StackNode *cur= aStack.top->next; cur!=NULL; cur=cur->next) { newPtr->next=new StackNode; newPtr=newPtr->next; newPtr->item=cur->item; } newPtr->next=NULL; } } // Конец Конструктора копирования

Слайд 19


Конструкторы и деструкторы: Stack::~Stack() { while(!isEmpty()) pop(); }
Описание слайда:
Конструкторы и деструкторы: Stack::~Stack() { while(!isEmpty()) pop(); }

Слайд 20


Операции со стеком Stack::pop() { if (isEmpty()) coutnext=NULL; delete temp; } } // Конец функции pop
Описание слайда:
Операции со стеком Stack::pop() { if (isEmpty()) coutnext=NULL; delete temp; } } // Конец функции pop

Слайд 21


Операции со стеком Stack::pop(StackItemType & stackTop) { if (isEmpty()) coutnext; temp->next=NULL; delete temp; } } // Конец функции pop
Описание слайда:
Операции со стеком Stack::pop(StackItemType & stackTop) { if (isEmpty()) coutnext; temp->next=NULL; delete temp; } } // Конец функции pop

Слайд 22


Операции со стеком Stack::push(StackItemType newItem) { StackNode *temp=new StackNode; temp->item=newItem; temp->next=top; top=temp } // Конец...
Описание слайда:
Операции со стеком Stack::push(StackItemType newItem) { StackNode *temp=new StackNode; temp->item=newItem; temp->next=top; top=temp } // Конец функции push

Слайд 23


Операции со стеком int Stack::isEmpty() { return (top==NULL) } // Конец функции isEmpty viod Stack::getTop(StackItemType & stackTop) { if(isEmpty)...
Описание слайда:
Операции со стеком int Stack::isEmpty() { return (top==NULL) } // Конец функции isEmpty viod Stack::getTop(StackItemType & stackTop) { if(isEmpty) cout

Слайд 24


Реализация стека в виде абстрактного списка class Stack { public: //Конструкторы и деструкторы ……………………………………. // Операции над стеком ……………………………………...
Описание слайда:
Реализация стека в виде абстрактного списка class Stack { public: //Конструкторы и деструкторы ……………………………………. // Операции над стеком …………………………………… private: List L; // список элементов стека } // конец описания класса

Слайд 25


Реализация стека в виде абстрактного списка Диаграмма класса Список
Описание слайда:
Реализация стека в виде абстрактного списка Диаграмма класса Список

Слайд 26


Реализация стека в виде абстрактного списка Stack::Stack(const Stack& aStack): L(aStack.L) { }; Int Stack::isEmpty() const { return(L.isEmpty); }
Описание слайда:
Реализация стека в виде абстрактного списка Stack::Stack(const Stack& aStack): L(aStack.L) { }; Int Stack::isEmpty() const { return(L.isEmpty); }

Слайд 27


Реализация стека в виде абстрактного списка Stack::push(StackItemType newItem) { L.insert(1,newItem); }; void Stack::pop() { L.remove(1); }
Описание слайда:
Реализация стека в виде абстрактного списка Stack::push(StackItemType newItem) { L.insert(1,newItem); }; void Stack::pop() { L.remove(1); }

Слайд 28


Реализация стека в виде абстрактного списка Stack:: getTop(StackItemType& stackTop) { L.retrieve(1,stackTop); }; void Stack::pop(StackItemType&...
Описание слайда:
Реализация стека в виде абстрактного списка Stack:: getTop(StackItemType& stackTop) { L.retrieve(1,stackTop); }; void Stack::pop(StackItemType& stackTop) { L.retrieve(1,stackTop); L.remove(1); }

Слайд 29


Алгебраические выражения Инфиксная запись выражений: каждый бинарный оператор помещается между своими операндами Префиксная запись выражений...
Описание слайда:
Алгебраические выражения Инфиксная запись выражений: каждый бинарный оператор помещается между своими операндами Префиксная запись выражений (Prefix): каждый бинарный оператор помещается перед своими операндами (Польская запись) Постфиксная запись выражений (Postfix): каждый бинарный оператор помещается после своих операндов (Обратная Польская запись)

Слайд 30


Алгебраические выражения
Описание слайда:
Алгебраические выражения

Слайд 31


Преобразование инфиксной формы в Prefix и Postfix Допустим, инфиксное выражение полностью заключено в скобки Преобразование в префиксную форму:...
Описание слайда:
Преобразование инфиксной формы в Prefix и Postfix Допустим, инфиксное выражение полностью заключено в скобки Преобразование в префиксную форму: каждый оператор перемещается на позицию соответствующей открывающейся скобки (перед операцией) Преобразование в постфиксную форму: каждый оператор перемещается на позицию соответствующей закрывающейся скобки (после операцией) Скобки убираются

Слайд 32


Примеры Преобразование в префиксную форму: ( ( A + B ) * C ) + * *+ABC Преобразование в постфиксную форму: ( ( A + B ) * C ) + * AB+C*
Описание слайда:
Примеры Преобразование в префиксную форму: ( ( A + B ) * C ) + * *+ABC Преобразование в постфиксную форму: ( ( A + B ) * C ) + * AB+C*

Слайд 33


Преимущества префиксной и постфиксной форм записи Не нужны приоритеты операций, правила ассоциативности, скобки Алгоритмы распознавания выражений и...
Описание слайда:
Преимущества префиксной и постфиксной форм записи Не нужны приоритеты операций, правила ассоциативности, скобки Алгоритмы распознавания выражений и вычисления более просты

Слайд 34


Вычисление постфиксных выражений Допустим необходимо вычислить выражение: 2*(3+4) Его постфиксная запись: 234+* Порядок выполнения операций: Помещаем...
Описание слайда:
Вычисление постфиксных выражений Допустим необходимо вычислить выражение: 2*(3+4) Его постфиксная запись: 234+* Порядок выполнения операций: Помещаем в стек значения всех операндов, пока не встретим знак операции Выталкиваем из стека 2 операнда Производим с ними соответствующую операцию Результат помещаем в стек Повторяем операции до тех пор, пока не кончится строка символов

Слайд 35


Пример (Функция Pop(op)- возвращает значение op из вершины стека и удаляет это значение из стека):
Описание слайда:
Пример (Функция Pop(op)- возвращает значение op из вершины стека и удаляет это значение из стека):

Слайд 36


Псевдокод алгоритма Предположения: Строка содержит синтаксически правильное выражение Унарные операции и операции возведения в степень не...
Описание слайда:
Псевдокод алгоритма Предположения: Строка содержит синтаксически правильное выражение Унарные операции и операции возведения в степень не используются Операнды задаются строчными буквами

Слайд 37


Псевдокод алгоритма For (каждый символ ch в строке) { if (ch является операндом) // помещаем ch в стек Push(ch); else { Opign=ch; Op2=...
Описание слайда:
Псевдокод алгоритма For (каждый символ ch в строке) { if (ch является операндом) // помещаем ch в стек Push(ch); else { Opign=ch; Op2= getTop();Pop(); //извлекаем значение из вершины Op1= getTop(); Pop(); // и удаляем его // выполняем соответствующую операцию Result=Op1 Opsign Op2; // помещаем результат в стек Push(Result); }; // конец оператора if } // конец оператора For

Слайд 38


Преобразование инфиксных выражение в постфиксные Будем использовать: Стек для хранения операций и скобок Строку PostfixExp для формирования...
Описание слайда:
Преобразование инфиксных выражение в постфиксные Будем использовать: Стек для хранения операций и скобок Строку PostfixExp для формирования постфиксного выражения

Слайд 39


Преобразование инфиксных выражение в постфиксные Алгоритм: Если встретился операнд – помещаем его в строку Если встретилась ‘(’ – помещаем в стек...
Описание слайда:
Преобразование инфиксных выражение в постфиксные Алгоритм: Если встретился операнд – помещаем его в строку Если встретилась ‘(’ – помещаем в стек Если встретился оператор: Если стек пуст – помещаем оператор в стек Если стек не пуст – операторы более высокого приоритета выталкиваются и помещаются в строку, пока не встретится ‘(’ или оператор более низкого приоритета Если встретился символ ‘)’ , то все элементы выталкиваются из стека и помещаются в строку, пока не встретится соответствующая ‘(‘ Достигнув конца строки, все элементы стека добавляются в строку

Слайд 40


Пример: A-(B+C*D)/F)
Описание слайда:
Пример: A-(B+C*D)/F)

Слайд 41


Пример: A+B*(C/B+Z*(A+D))
Описание слайда:
Пример: A+B*(C/B+Z*(A+D))

Слайд 42


Пример: A+B*(C/B+Z*(A+D))
Описание слайда:
Пример: A+B*(C/B+Z*(A+D))

Слайд 43


Псевдокод алгоритма: For (для каждого символа в стрcке ch) { Swith (ch) { case operand: PostfixExp= PostfixExp+ch; break; case ‘(‘: Push(ch); break;...
Описание слайда:
Псевдокод алгоритма: For (для каждого символа в стрcке ch) { Swith (ch) { case operand: PostfixExp= PostfixExp+ch; break; case ‘(‘: Push(ch); break; case ‘)’: While( ‘(‘) { PostfixExp= PostfixExp + getTop(); Pop(); };

Слайд 44


Псевдокод алгоритма: case operator: While (!IsEmpty() и значение вершины != ‘(‘ и Приоритет ch не превосходит приоритета вершины) { PostfixExp=...
Описание слайда:
Псевдокод алгоритма: case operator: While (!IsEmpty() и значение вершины != ‘(‘ и Приоритет ch не превосходит приоритета вершины) { PostfixExp= PostfixExp+getTop(); Pop(); } // конец While Push(ch); break; }// конец Swith; }// конец For While(! IsEmpty() ) { PostfixExp= PostfixExp + getTop(); Pop(); }; // конец While



Похожие презентации
Mypresentation.ru
Загрузить презентацию