Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 29.09.2014
Сообщений: 4
1

Обеспечить операции ведения стека из начала очереди, дополнения и продвижения очереди

29.09.2014, 01:15. Просмотров 1062. Ответов 2
Метки нет (Все метки)

Доброе времени суток. Давно читаю ваш форум, и всегда находил ответы на вопросы, но на вопрос который сейчас задам не вашем и других форумах не нашел инфу.

Задача заключается в следующем "Организовать в основной памяти очередь из стеков. Обеспечить операции ведения стека из начала очереди, дополнения и продвижения очереди, выдачи содержимого очереди.

Как реализовать стек я знаю, как реализовать очередь я знаю. Но как реализовать очередь чтобы элементами ее были стеки.

Грубо говоря, при выводи очереди на экране должно появится что то виде матрицы :

-------------------> это очередь
1 2 5 6 9 8 7 5 3 |
5 6 7 8 9 5 9 3 8 | cтеки
5 ****3 *** 7 9 |
************8 \/

Можете показать простенький пример.

Добавлено через 6 минут
Вот реализовал подменю
C
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <stdio.h>
#include <conio.h>
#include <locale>
#include <iostream>
 
struct stek
{
    int info;
    stek *next;
};
stek *top,*temp;
 
void Add(int num)
{
    
    temp = new stek;//выделили память под элемент/
    temp->info=num;
    if(top==NULL)//если  пустой//
    {
        temp->next=NULL;//следующего элемента нет//
        top=temp;//вершина указывает на следующий//
    }
    else
    {
        temp->next=top;//вершина указывает на предыдущий//
        top=temp;//вершина указывает на следующий//
    }
}
 
void DelFirst()
{
    if(top==NULL)
    {
        printf("Стек пуст\n");
    }
    else
    {
        temp=top;//заполнили вершину//
        top=top->next;//перешли на следующий элемент//
        printf("%d удалено\n", temp->info); 
        delete(temp);
    }
}
 
 
 
void View_All()
{
    stek *current=top; 
 
    if(top==NULL)
        printf("Stek empty\n");
    else
    {       
        while(current!=NULL) //пока не дошли до вершины//
        {
            printf(" %d ",current->info);
            current=current->next; //двигаемся дальше//
        }
    }
    printf("\n");
}
 
void main()
{
    top = NULL; 
    
    int q=0,num=0;
    setlocale (LC_CTYPE, "Russian");
    do
    {
    printf("\nВведите номер операции:");
    printf("\n1 - Дополнение стека");
    printf("\n2 - Удалить из стека");
    printf("\n3 - Вывод стека");
    printf("\n4 - Выход из программы\n");       
    scanf("%d",&q);
    if (q==1,2,3)
    {
        switch(q)
        {
            case 1:
                {
                    printf("\nВведите значение:");
                    scanf("%d",&num);
                    Add(num);
                    break;
                }
            case 2:DelFirst(); break;
            case 3:View_All(); break;
        }
    }
    }
    while (q!=4);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2014, 01:15
Ответы с готовыми решениями:

Извлекать из очереди элементы, пока значение начального элемента очереди не станет четным
Даны указатели P1 и P2 на начало и конец непустого очереди. Извлекать из очереди элементы, пока...

Реализовать все возможные операции для очереди
Доброго времени суток) кому не составит большого труда, прошу помочь с заданием) Реализовать все...

Извлечь из очереди начальные элементы и вывести их значения и новые адреса начала и конца очереди
Дано число N (&gt; 0) и указатели P1 и P2 на начало и конец непустой очереди. Извлечь из очереди N...

Задача с очередью. Составить программу для ведения очереди и учета количества компьютеров в филиалах
Имеется следующая задача: Поставщик направляет товар Заказчику. Заказчик имеет сеть филиалов....

2
Заблокирован
29.09.2014, 01:30 2
C
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
#include <stdio.h>
#include <conio.h>
#include <locale>
#include <iostream>
 
struct stek
{
    int info;
    stek *next;
};
stek *top,*temp;
 
struct queue
{
   queue *first;
   queue *last;
   stek *top;
};
 
queue *qu;
 
void AddToQueue()
{
  ............................ сюда код выделения очереди, элементом ставим стек, стек обнуляем.
}
 
...........................
1
0 / 0 / 1
Регистрация: 29.09.2014
Сообщений: 4
29.09.2014, 15:33  [ТС] 3
можешь по подробнее расписать эту функцию пожалуйста
C
1
2
3
4
void AddToQueue()
{
  ............................ сюда код выделения очереди, элементом ставим стек, стек обнуляем.
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2014, 15:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Простейшая реализация стека и очереди
Имеется пример реализации стека: #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; ...

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

Выведите содержимое очереди на экран и посчитайте количество элементов образованной очереди
Дан текстовый файл. Проанализировав в программе содержимое файла, выберите из него имена и занесите...

Вывести содержимое очереди на экран и посчитать количество элементов образованной очереди
Дан текстовый файл. Проанализировать в программе содержимое файла, выберете из него имена и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.