Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
 Аватар для Serg22
107 / 107 / 58
Регистрация: 04.03.2013
Сообщений: 479

Очередь на базе списка: добавление элемента, удаление, поиск в очереди, вывод на экран

05.05.2013, 19:39. Показов 3252. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может у кого есть готовое решение этого задания, буду Вам очень признателен. Желательно что бы пользователь сам вводил значения с клавиатуры.
ЗЫ: с Праздником всех)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.05.2013, 19:39
Ответы с готовыми решениями:

Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод)
Друзья, завтра сдать курсач, неделю парился с кодом. В итоге ничего дельного не вышло. Обращаюсь к вам, умельцы, за скорой помощью. Итак...

Создание однонаправленного списка, вывод на экран, добавление и удаление элементов
Write a program that creates a singly linked list consisting of positive and negative integers, outputs this list on the screen, allows...

Добавление и удаление элемента из очереди
Есть три очереди, с размерностями 13, 19, 19 Когда добавляю элементы в очереди (в конец), я добавляю сразу во все очереди одновременно....

3
...
 Аватар для anmartex
1910 / 1329 / 966
Регистрация: 12.02.2013
Сообщений: 2,172
06.05.2013, 09:02
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Набросал на скорую руку:
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
96
97
98
99
100
101
102
103
104
105
106
107
#include <stdio.h>
#include <stdlib.h>
 
typedef struct node_t
{
   int value;
   struct node_t* next;
}  TNode;
 
typedef struct queue_t
{
   TNode* head;
   TNode* tail;
}  TQueue;
 
//-----------------------------------------------------------------------------
TQueue* Push(TQueue* queue, int value)
{
   TNode* node = (TNode*) malloc(sizeof(TNode));
   node->value = value;
   node->next = NULL;
 
   if (queue->head && queue->tail)
   {
      queue->tail->next = node;
      queue->tail = node;
   }
   else
   {
      queue->head = queue->tail = node;
   }
 
   return queue;
}
//-----------------------------------------------------------------------------
int Pop(TQueue* queue)
{
   int value = 0;
 
   if (queue->head)
   {
      value = queue->head->value;
      queue->head = queue->head->next;
   }
 
   return value;
}
//-----------------------------------------------------------------------------
TNode* Find(TQueue* queue, int value)
{
   TNode* node = queue->head;
 
   for (; node && (node->value != value); node = node->next) { ; }
 
   return node;
}
//-----------------------------------------------------------------------------
void Print(const TQueue* queue)
{
   const TNode* node = queue->head;
 
   for (; node; node = node->next)
   {
      printf("%d ", node->value);
   }
   printf("\n");
}
//-----------------------------------------------------------------------------
 
int main()
{
   TQueue queue = {NULL, NULL};
   int value = 0;
 
   printf("elements: ");
   while (scanf("%d", &value))
   {
      Push(&queue, value);
   }
 
   printf("result: "); Print(&queue);
 
   printf("popped: %d\n", Pop(&queue));
   printf("popped: %d\n", Pop(&queue));
   printf("popped: %d\n", Pop(&queue));
 
   printf("result: "); Print(&queue);
 
   printf("find: ");
   fflush(stdin);
   scanf("%d", &value);
 
   TNode* find = Find(&queue, value);
 
   if (find)
   {
      printf("found: %d\n", find->value);
   }
   else
   {
      printf("%d not found\n", value);
   }
 
   system("pause");
 
   return 0;
}


Бинарник + исходник: program.7z
2
 Аватар для Serg22
107 / 107 / 58
Регистрация: 04.03.2013
Сообщений: 479
06.05.2013, 11:44  [ТС]
Большое Вам спасибо!!!

Добавлено через 55 минут
я конечно обнаглел, но если это не отнимет у Вас много времени, можете,пожалуйста, немного переделать код, что бы он работал по принципу этого ? (т.е самая элементарная менюшка (циклом) + печать позиции найденого элемента)
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
#define N 10
 
void vvod_ochered(int mas[],int *kol,int *end)
{
if((*kol)==N){
printf("\nОчередь заполнена!\n");}
else{
printf("\nВведите элемент очереди:   ");
scanf("%d",&mas[(*end)]);
(*kol)++;
(*end)++;}
}
void poisk_v_ocheredi(int mas[],int end, int start)
{ int f,i,pos=-1;
 printf("Введите искомое число:   ");
 scanf("%d",&f);
 for (i=start;i<end;i++)
  if(mas[i]==f)
   {
    pos = i;
    break;
  }
  if(pos != -1)
  printf("Элемент  %d-й в очереди",pos+1);
 
else printf("Элемента нет");
}
 
 
 
void vivod_ochered(int mas[],int end,int start,int kol)
{
printf("\nОчередь:   ");
int i,j;
j=0;
for(i=end-1;i>=start;i--,j++)
{
if(j<kol)
printf("%d ",mas[i]);
}
}
 
 
void del_ochered(int mas[],int *kol,int *start)
{
if((*kol)==0)
{
printf("\n0 элементов в очереди!\n");
}
else
{
printf("Удалить элемент %d",mas[(*start)]);
(*start)++;
(*kol)--;
}
}
 
int main()
{ setlocale (LC_ALL, "Russian");
int mas[N+20];
int S,n=0,start=0,end=0;
for(;;)
{
 
printf("\n1.Добавление элемента\n2.Удалить элемент\n3.Вывод очереди\n4.Поиск в очереди\n5.Выход\n:");
scanf("%d",&S);
switch(S)
{
case 1:vvod_ochered(mas,&n,&end);break;
case 2:del_ochered(mas,&n,&start);break;
case 3:vivod_ochered(mas,end,start,n);break;
case 4:poisk_v_ocheredi(mas,end,start);break;
case 5:return 0;
}
}
 
 
}
0
...
 Аватар для anmartex
1910 / 1329 / 966
Регистрация: 12.02.2013
Сообщений: 2,172
06.05.2013, 15:17
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <stdio.h>
#include <stdlib.h>
 
typedef struct node_t
{
   int value;
   struct node_t* next;
}  TNode;
 
typedef struct queue_t
{
   TNode* head;
   TNode* tail;
}  TQueue;
 
//-----------------------------------------------------------------------------
TQueue* Push(TQueue* queue, int value)
{
   TNode* node = (TNode*) malloc(sizeof(TNode));
   node->value = value;
   node->next = NULL;
 
   if (queue->head && queue->tail)
   {
      queue->tail->next = node;
      queue->tail = node;
   }
   else
   {
      queue->head = queue->tail = node;
   }
 
   return queue;
}
//-----------------------------------------------------------------------------
int Pop(TQueue* queue)
{
   int value = 0;
 
   if (queue->head)
   {
      value = queue->head->value;
      queue->head = queue->head->next;
   }
 
   return value;
}
//-----------------------------------------------------------------------------
int Find(TQueue* queue, int value)
{
   TNode* node = queue->head;
 
   int i = 0;
   for (; node && (node->value != value); node = node->next)
   {
      i++;
   }
 
   return node ? i : -1;
}
//-----------------------------------------------------------------------------
void Print(const TQueue* queue)
{
   const TNode* node = queue->head;
 
   for (; node; node = node->next)
   {
      printf("%d ", node->value);
   }
   printf("\n");
}
//-----------------------------------------------------------------------------
 
int main()
{
   TQueue queue = {NULL, NULL};
 
   printf("Queue operations:\n"
          " 1. Push element\n"
          " 2. View list\n"
          " 3. Pop element\n"
          " 4. Search element\n"
          " any other for quit\n");
 
   int quit = 0;
   int value;
 
   while (!quit)
   {
      printf("command> ");
      fflush(stdin);
 
      switch (getchar())
      {
         case '1':
            printf("element> ");
            if (scanf("%d", &value))
            {
               Push(&queue, value);
            }
            break;
 
         case '2':
            Print(&queue);
            break;
 
         case '3':
            printf("popped:  %d\n", Pop(&queue));
            break;
 
         case '4':
            printf("search>  ");
            if (scanf("%d", &value))
            {
               int pos = Find(&queue, value);
 
               if (pos != -1)
               {
                  printf("%d position\n", pos + 1);
               }
               else
               {
                  printf("element %d not found\n", value);
               }
            }
            break;
 
         default:
            quit = 1;
      }
   }
 
   return 0;
}


Бинарник + исходник: program.7z
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.05.2013, 15:17
Помогаю со студенческими работами здесь

Добавление элементов в очередь и вывод на экран
Помогите реализовать простенькую программку из паскаля в delphi. А то я слаб в нём... Мне самое простое ввод и вывод элементов. Для ввода...

Добавление либо удаление элемента из списка
Здравствуйте, в листе проекта есть несколько проектов. Как можно с помощью нажатия на кнопку удалить либо добавить новый проект public...

Реализация списка.Удаление хвостового элемента.Поиск элемента
Всем привет,мое задание выглядит так : В класс List&lt;T&gt; из классной работы добавить следующие методы: void addHead(T...

Поиск максимального и минимального элемента в очереди, удаление элементов между максимальным и минимальным
Задача следующая: написать функцию, которая ищет максимальный и минимальный элементы в очереди и удаляет элементы, находящиеся между ними....

Осуществить добавление и удаление указанного элемента списка
1.реализовать динамические структуры данных список, очередь, стеки. В каждом случае осуществить добавление и удаление указанного элемента. ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru