Содержание
- 2. Очереди Очередь – динамическая структура данных с упорядоченным доступом к элементам, функционирующая по принципу FIFO. First
- 3. Последовательное хранение Типы и переменные typedef struct{ TYPE *list; int size,count,head,tail; } QUEUE;
- 4. Создание очереди int Create(QUEUE *queue,int sz) { queue->list = (TYPE*)calloc(sz,sizeof(TYPE)); if(!queue->list) return 0; queue->size = sz;
- 5. Удаление очереди void Clear(QUEUE *queue) { if(queue->list) free(queue->list); queue->list = NULL; queue->size = queue->count = 0;
- 6. Помещение элемента в очередь int Put(QUEUE *queue, TYPE val) { if(queue->count == queue->size) return 0; queue->list[queue->tail++]
- 7. Изъятие элемента из очереди int Get(QUEUE *queue, TYPE *val) { if(queue->count == 0) return 0; *val
- 8. Пример Реализовать программу, которая в интерактивном режиме запрашивает у пользователя команду и выполняет ее. Команды: exit
- 9. Программа int main(int argc, char *argv[]) { QUEUE q; Create(&q,20); while(1){ char cmd[21]; int value; printf(">:
- 10. Связанное хранение Типы и переменные: typedef struct _ELEMENT{ TYPE value; struct _ELEMENT *next; } ELEMENT; typedef
- 11. Создание и удаление очереди void Create(QUEUE *queue) { queue->head = queue->tail = NULL; } void Clear(QUEUE
- 12. Помещение элемента в очередь int Put(QUEUE *queue, TYPE val) { ELEMENT *tmp = (ELEMENT*)malloc(sizeof(ELEMENT)); if(!tmp) return
- 13. Изъятие элемента из очереди int Get(QUEUE *queue, TYPE *val) { if(!queue->head) return 0; ELEMENT *tmp =
- 14. Стек Стек – динамическая структура данных c упорядоченным доступом к элементам, функционирующая по принципу LIFO. Last
- 15. Последовательное хранение Типы и переменные: typedef struct{ TYPE *list; int size,head; } STACK;
- 16. Создание стека int Create(STACK *stack, int sz) { stack->list = (TYPE*)calloc(sz,sizeof(TYPE)); if(!stack->list) return 0; stack->head =
- 17. Удаление стека void Clear(STACK *stack) { if(stack->list) free(stack->list); stack->list = NULL; stack->head = 0; stack->size =
- 18. Помещение элемента в стек int Push(STACK *stack, TYPE val) { if(stack->head == stack->size-1) return 0; stack->list[++stack->head]
- 19. Изъятие элемента из стека int Pop(STACK *stack, TYPE *val) { if(stack->head == -1) return 0; *val
- 20. Пример Реализовать программу, которая в интерактивном режиме запрашивает у пользователя команду и выполняет ее. Команды: exit
- 21. Программа int main(int argc, char *argv[]) { STACK q; Create(&q,20); while(1){ char cmd[21]; int value; printf(">:
- 22. Связанное хранение Типы и переменные: typedef struct _ELEMENT{ TYPE value; struct _ELEMENT *next; } ELEMENT; typedef
- 23. Создание и удаление стека void Create(STACK *stack) { *stack = NULL; } void Clear(STACK *stack) {
- 24. Помещение элемента в стек int Push(STACK *stack, TYPE val) { ELEMENT *tmp = (ELEMENT*)malloc(sizeof(ELEMENT)); if(!tmp) return
- 26. Скачать презентацию