Презентация Динамические структуры данных: очереди и стеки онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Динамические структуры данных: очереди и стеки абсолютно бесплатно. Урок-презентация на эту тему содержит всего 25 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Динамические структуры данных: очереди и стеки



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    25 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    94.50 kB
  • Просмотров:
    78
  • Скачиваний:
    0
  • Автор:
    неизвестен



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

№1 слайд
Лекция Динамические структуры
Содержание слайда: Лекция 15 Динамические структуры данных: очереди и стеки

№2 слайд
Очереди Очередь динамическая
Содержание слайда: Очереди Очередь – динамическая структура данных с упорядоченным доступом к элементам, функционирующая по принципу FIFO. First In First Out

№3 слайд
Последовательное хранение
Содержание слайда: Последовательное хранение Типы и переменные typedef struct{ TYPE *list; int size,count,head,tail; } QUEUE;

№4 слайд
Создание очереди int Create
Содержание слайда: Создание очереди int Create(QUEUE *queue,int sz) { queue->list = (TYPE*)calloc(sz,sizeof(TYPE)); if(!queue->list) return 0; queue->size = sz; queue->count = queue->head = queue->tail = 0; return 1; }

№5 слайд
Удаление очереди void Clear
Содержание слайда: Удаление очереди void Clear(QUEUE *queue) { if(queue->list) free(queue->list); queue->list = NULL; queue->size = queue->count = 0; queue->head = queue->tail = 0; }

№6 слайд
Помещение элемента в очередь
Содержание слайда: Помещение элемента в очередь int Put(QUEUE *queue, TYPE val) { if(queue->count == queue->size) return 0; queue->list[queue->tail++] = val; if(queue->tail == queue->size) queue->tail = 0; queue->count++; return 1; }

№7 слайд
Изъятие элемента из очереди
Содержание слайда: Изъятие элемента из очереди int Get(QUEUE *queue, TYPE *val) { if(queue->count == 0) return 0; *val = queue->list[queue->head++]; if(queue->head == queue->size) queue->head = 0; queue->count--; return 1; }

№8 слайд
Пример Реализовать программу,
Содержание слайда: Пример Реализовать программу, которая в интерактивном режиме запрашивает у пользователя команду и выполняет ее. Команды: exit – завершение программы, put N – помещение N в очередь, get – изъять элемент из очереди и вывести его значение на экран. Дополнительно программа должна выводить сообщения о невозможности выполнения операции

№9 слайд
Программа int main int argc,
Содержание слайда: Программа int main(int argc, char *argv[]) { QUEUE q; Create(&q,20); while(1){ char cmd[21]; int value; printf(">: "); gets(cmd); if(strncmp(cmd,"exit",4)==0) break; if(strncmp(cmd,"put",3)==0){ char *tail = NULL; value = strtol(&cmd[3],&tail,10); if(strlen(tail)==0){ if(!Put(&q,value)) puts("Очередь заполнена!"); } else puts("Некорректная команда"); }else if(strcmp(cmd,"get")==0){ if(Get(&q,&value)) printf("%d\n",value); else puts("Очередь пуста!"); } else puts("Неизвестная команда!"); } Clear(&q); return 0; }

№10 слайд
Связанное хранение Типы и
Содержание слайда: Связанное хранение Типы и переменные: typedef struct _ELEMENT{ TYPE value; struct _ELEMENT *next; } ELEMENT; typedef struct{ ELEMENT *head, *tail; }QUEUE;

№11 слайд
Создание и удаление очереди
Содержание слайда: Создание и удаление очереди void Create(QUEUE *queue) { queue->head = queue->tail = NULL; } void Clear(QUEUE *queue) { while(queue->head){ ELEMENT *tmp = queue->head; queue->head = tmp->next; free(tmp); } queue->tail = NULL; }

№12 слайд
Помещение элемента в очередь
Содержание слайда: Помещение элемента в очередь int Put(QUEUE *queue, TYPE val) { ELEMENT *tmp = (ELEMENT*)malloc(sizeof(ELEMENT)); if(!tmp) return 0; tmp->next = NULL; tmp->value = val; if(queue->tail) queue->tail->next = tmp; queue->tail = tmp; if(!queue->head) queue->head = queue->tail; return 1; }

№13 слайд
Изъятие элемента из очереди
Содержание слайда: Изъятие элемента из очереди int Get(QUEUE *queue, TYPE *val) { if(!queue->head) return 0; ELEMENT *tmp = queue->head; queue->head = tmp->next; *val = tmp->value; free(tmp); if(!queue->head) queue->tail = NULL; return 1; }

№14 слайд
Стек Стек динамическая
Содержание слайда: Стек Стек – динамическая структура данных c упорядоченным доступом к элементам, функционирующая по принципу LIFO. Last In First Out

№15 слайд
Последовательное хранение
Содержание слайда: Последовательное хранение Типы и переменные: typedef struct{ TYPE *list; int size,head; } STACK;

№16 слайд
Создание стека int Create
Содержание слайда: Создание стека int Create(STACK *stack, int sz) { stack->list = (TYPE*)calloc(sz,sizeof(TYPE)); if(!stack->list) return 0; stack->head = -1; stack->size = sz; return 1; }

№17 слайд
Удаление стека void Clear
Содержание слайда: Удаление стека void Clear(STACK *stack) { if(stack->list) free(stack->list); stack->list = NULL; stack->head = 0; stack->size = 0; }

№18 слайд
Помещение элемента в стек int
Содержание слайда: Помещение элемента в стек int Push(STACK *stack, TYPE val) { if(stack->head == stack->size-1) return 0; stack->list[++stack->head] = val; return 1; }

№19 слайд
Изъятие элемента из стека int
Содержание слайда: Изъятие элемента из стека int Pop(STACK *stack, TYPE *val) { if(stack->head == -1) return 0; *val = stack->list[stack->head--]; return 1; }

№20 слайд
Пример Реализовать программу,
Содержание слайда: Пример Реализовать программу, которая в интерактивном режиме запрашивает у пользователя команду и выполняет ее. Команды: exit – завершение программы, push N – помещение N в стек, pop – изъять элемент из стека и вывести его значение на экран. Дополнительно программа должна выводить сообщения о невозможности выполнения операции

№21 слайд
Программа int main int argc,
Содержание слайда: Программа int main(int argc, char *argv[]) { STACK q; Create(&q,20); while(1){ char cmd[21]; int value; printf(">: "); gets(cmd); if(strncmp(cmd,"exit",4)==0) break; if(strncmp(cmd,"push",4)==0){ char *tail = NULL; value = strtol(&cmd[4],&tail,10); if(strlen(tail)==0){ if(!Push(&q,value)) puts("Стек заполнен!"); } else puts("Некорректная команда"); }else if(strcmp(cmd,"get")==0){ if(Pop(&q,&value)) printf("%d\n",value); else puts("Стек пуст!"); } else puts("Неизвестная команда!"); } Clear(&q); return 0; }

№22 слайд
Связанное хранение Типы и
Содержание слайда: Связанное хранение Типы и переменные: typedef struct _ELEMENT{ TYPE value; struct _ELEMENT *next; } ELEMENT; typedef ELEMENT* STACK;

№23 слайд
Создание и удаление стека
Содержание слайда: Создание и удаление стека void Create(STACK *stack) { *stack = NULL; } void Clear(STACK *stack) { while(*stack){ ELEMENT *tmp = *stack; *stack = tmp->next; free(tmp); } }

№24 слайд
Помещение элемента в стек int
Содержание слайда: Помещение элемента в стек int Push(STACK *stack, TYPE val) { ELEMENT *tmp = (ELEMENT*)malloc(sizeof(ELEMENT)); if(!tmp) return 0; tmp->next = *stack; tmp->value = val; *stack = tmp; return 1; }

№25 слайд
Изъятие элемента из стека int
Содержание слайда: Изъятие элемента из стека int Pop(STACK *stack, TYPE *val) { if(!*stack) return 0; ELEMENT *tmp = *stack; *stack = tmp->next; *val = tmp->value; free(tmp); return 1; }

Скачать все slide презентации Динамические структуры данных: очереди и стеки одним архивом: