Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
#1

можно ли считать данный код реализацией очереди - C++

28.11.2012, 18:15. Просмотров 548. Ответов 13
Метки нет (Все метки)

можно ли считать данный код реализацией очереди. и если нет, то почему.


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
#include <stdlib.h>
#include <stdio.h>
 
typedef struct LIST{
  int val;
  struct LIST *ptr;
};
 
LIST *head = NULL;
LIST *tail = NULL;
LIST *tek_ptr;
 
//добавление
void push(int n){
 
  tek_ptr = (LIST*)malloc(sizeof(LIST));
  tek_ptr->val = n;
 
  if(head == NULL && tail == NULL)
    head = tek_ptr;
  else
    tail->ptr = tek_ptr;
 
  tail = tek_ptr;
  tail->ptr = NULL;
 
}
 
//извлечение и вывод
void pop(){
 
  tek_ptr = head;
  while(tek_ptr!= NULL){
    printf("%d", tek_ptr->val);
    tek_ptr = tek_ptr->ptr;
  }
 
}
 
 
int main(){
 
  int n;
  scanf("%d", &n);
  push(n);
 
  scanf("%d", &n);
  push(n);
 
  scanf("%d", &n);
  push(n);
 
  pop();
 
  return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2012, 18:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос можно ли считать данный код реализацией очереди (C++):

Можно ли данный код сделать короче? - C++
#include&lt;iostream&gt; #include&lt;iomanip&gt; int main() { int r,f,a,b,c,d,x,y; cout&lt;&lt;&quot;Vvedite znachenie r:&quot;; cin&gt;&gt;r; ...

Как можно оптимизировать данный код? - C++
И... Ещё один вопрос: Дан участок кода С++: #include &lt;iostream&gt; #include &quot;Windows.h&quot; using namespace...

Очереди. Каким образом считать две очереди из одного текстового файла? - C++
Здравстуйте. В задании первый пункт состоит в том, что нужно сформировать две очереди по n элементов с помощью считки данных из...

Создать на базе класса с реализацией очереди клас потомок — кольцевая очередь - C++
Доброго времени суток. Я хотел создать на базе класса с реализацией очереди клас потомок - кольцевая очередь. Исходник: #include...

Что делает данный код? - C++
for (int i = 0; i&lt;s1.length(); i++) if (s2.find(s1) != string::npos) cout &lt;&lt; s1;

Помогите упростить данный код - C++
Не знаю как упростить((( #include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; main() {

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
28.11.2012, 18:18 #2
нет, это реализация стека.
0
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
28.11.2012, 18:22  [ТС] #3
нет. в стеке первый пришел последний ушел
а тут первый пришел, первый ушел
если считаете это стеком, буду признателен, если приведете пример очередь.
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.11.2012, 18:27 #4
fenix0093, pop не дописана
0
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
28.11.2012, 18:50  [ТС] #5
I.M., вроде нормально работает, чего не хватает ?
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.11.2012, 18:51 #6
fenix0093, там нет извлечения, только вывод
0
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
28.11.2012, 18:53  [ТС] #7
I.M., т.е. освобождения памяти ?
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.11.2012, 18:54 #8
fenix0093, метод pop должен убирать один элемент из списка. Он ничего не убирает. Если для удаления элемента нужно очистить память - делайте это
0
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
28.11.2012, 19:05  [ТС] #9
I.M., хорошо, допишу удаление из памяти. а можно ли считать тогда будет это реализацией очереди ?
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.11.2012, 19:12 #10
fenix0093, зависит от того, какой элемент удалите) тогда это станет либо стеком, либо очередью, либо простым списком
0
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
28.11.2012, 19:30  [ТС] #11
I.M.,
вывод значений идет от головы. вывожу значение, удаляю элемент и так до хвоста. что будет этом случае ?
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.11.2012, 19:33 #12
Сейчас идет добавление в конец списка. Если удалять с начала списка, то будет очередь. Если с конца, то стек.
Ответ на вопрос: очередь
0
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
28.11.2012, 20:14  [ТС] #13
I.M., спасибо большое.
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь.
Добавлено через 38 минут
I.M., дописал функцию pop(). правильно ?
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
#include <stdlib.h>
#include <stdio.h>
 
typedef struct LIST{
    int val;
    struct LIST *ptr;
};
 
LIST *head = NULL;
LIST *tail = NULL;
LIST *tek_ptr;
 
//добавление
void push(int n){
 
    tek_ptr = (LIST*)malloc(sizeof(LIST));
    tek_ptr->val = n;
    
    if(head == NULL && tail == NULL)
        head = tek_ptr;
    else
        tail->ptr = tek_ptr;
    
    tail = tek_ptr;
    tail->ptr = NULL;
 
}
 
//извлечение и вывод
void pop(){
 
    while(head != NULL){
        printf("%d\n", head->val);
        tek_ptr = head->ptr;
        free(head);
        head = tek_ptr;
    }
 
}
 
 
int main(){
 
    int n;
    scanf("%d", &n);
    push(n);
 
    scanf("%d", &n);
    push(n);
 
    scanf("%d", &n);
    push(n);
 
    pop();
 
    return 0;
}
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.11.2012, 22:17 #14
fenix0093, нет.
Метод pop должен удалять один элемент, а не все сразу
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2012, 22:17
Привет! Вот еще темы с ответами:

Имеет ли данный код переменную - C++
Добрый день, int main() { return 0; } Почему возвращаемое значение стало возвращаемой переменной ?

Объясните, пожалуйста, данный код - C++
Здравствуйте, объясните пожалуйста построчно данный код. Задача: В одномерном массиве исключить все вхождения заданного числа. Массив...

Что означает данный код? - C++
Здравствуйте, что делает/означает данная строка кода? В гугле не мог найти, так как не знаю название данной фишки. float4 main( float3...

Что делает данный код? - C++
#include &lt;iostream&gt; #include &lt;queue&gt; using namespace std; int main() { queue &lt;int&gt; x1; queue &lt;int&gt; x2; queue &lt;int&gt;...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.11.2012, 22:17
Ответ Создать тему
Опции темы

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