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

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

Восстановить пароль Регистрация
 
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
28.11.2012, 18:15     можно ли считать данный код реализацией очереди #1
можно ли считать данный код реализацией очереди. и если нет, то почему.


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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
28.11.2012, 18:18     можно ли считать данный код реализацией очереди #2
нет, это реализация стека.
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
28.11.2012, 18:22  [ТС]     можно ли считать данный код реализацией очереди #3
нет. в стеке первый пришел последний ушел
а тут первый пришел, первый ушел
если считаете это стеком, буду признателен, если приведете пример очередь.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.11.2012, 18:27     можно ли считать данный код реализацией очереди #4
fenix0093, pop не дописана
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
28.11.2012, 18:50  [ТС]     можно ли считать данный код реализацией очереди #5
I.M., вроде нормально работает, чего не хватает ?
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.11.2012, 18:51     можно ли считать данный код реализацией очереди #6
fenix0093, там нет извлечения, только вывод
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
28.11.2012, 18:53  [ТС]     можно ли считать данный код реализацией очереди #7
I.M., т.е. освобождения памяти ?
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.11.2012, 18:54     можно ли считать данный код реализацией очереди #8
fenix0093, метод pop должен убирать один элемент из списка. Он ничего не убирает. Если для удаления элемента нужно очистить память - делайте это
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
28.11.2012, 19:05  [ТС]     можно ли считать данный код реализацией очереди #9
I.M., хорошо, допишу удаление из памяти. а можно ли считать тогда будет это реализацией очереди ?
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.11.2012, 19:12     можно ли считать данный код реализацией очереди #10
fenix0093, зависит от того, какой элемент удалите) тогда это станет либо стеком, либо очередью, либо простым списком
fenix0093
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 9
28.11.2012, 19:30  [ТС]     можно ли считать данный код реализацией очереди #11
I.M.,
вывод значений идет от головы. вывожу значение, удаляю элемент и так до хвоста. что будет этом случае ?
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.11.2012, 19:33     можно ли считать данный код реализацией очереди #12
Сейчас идет добавление в конец списка. Если удалять с начала списка, то будет очередь. Если с конца, то стек.
Ответ на вопрос: очередь
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2012, 22:17     можно ли считать данный код реализацией очереди
Еще ссылки по теме:

C++ Объясните, пожалуйста, данный код
C++ Создать на базе класса с реализацией очереди клас потомок — кольцевая очередь
C++ Помогите упростить данный код

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

Или воспользуйтесь поиском по форуму:
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
28.11.2012, 22:17     можно ли считать данный код реализацией очереди #14
fenix0093, нет.
Метод pop должен удалять один элемент, а не все сразу
Yandex
Объявления
28.11.2012, 22:17     можно ли считать данный код реализацией очереди
Ответ Создать тему
Опции темы

Текущее время: 01:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru