Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.03.2009, 18:44   #1
Sbq
 
Регистрация: 03.03.2009
Сообщений: 7
По умолчанию Как очередь приобразовать в список??

Вообщем я написала очередь - а теперь мне нужно сделать из нее список, по сути моя очередь уже является списком - помогите пожалуйста и обьясните - как она преобразовывается , если кто знает)) Вот исходник:

Код:
X[50], Y[50], Z[100];      // это добавление элементов в очередь         
int l = StrToInt(LabeledEdit2->Text);    
int XSize = StringGrid1->ColCount;     
int YSize = StringGrid2->ColCount;      
int k = YSize;                        

for(int i = 0; i < XSize; i++)
        X[i] = StrToInt(StringGrid1->Cells[i][0]);

for(int i = 0; i < YSize; i++)
        Y[i] = StrToInt(StringGrid2->Cells[i][0]);   


for(int i = 0; i <= l; i++)  
        Z[i] = X[i];
                                
for(int i = l+1; i <= l+k; i++)  
        Z[i] = Y[i-l-1];

for(int i = l+k+1; i < XSize+YSize; i++)  
        Z[i] = X[i-k];

StringGrid3->ColCount = XSize+YSize;   
for(int i = 0; i < XSize+YSize; i++)
        StringGrid3->Cells[i][0] = IntToStr(Z[i]);   

}
//------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender) // удаление элементов из очереди
{
  int X[50], Z[50];  
int l = StrToInt(LabeledEdit3->Text);  
int k = StrToInt(LabeledEdit4->Text); 
 int n = StringGrid1->ColCount;      

if (l>=n || l+k>=n) return;          

 for(int i = 0; i < n; i++)         
        X[i] = StrToInt(StringGrid1->Cells[i][0]);

 for (int i=0; i<=l; i++) 
   Z[i]=X[i];           
   for  (int i=l+k+1; i<n; i++)
   Z[i-k]=X[i];

   StringGrid3->ColCount=n-k; 

for(int i = 0; i < n; i++)
        StringGrid3->Cells [i][0] = IntToStr(Z[i]); 

}

Последний раз редактировалось MaTBeu; 11.03.2009 в 19:13.
Sbq вне форума
Старый 11.03.2009, 19:14   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Добавьте процедуры добавления в начало и удаления из конца.
MaTBeu вне форума
Старый 11.03.2009, 23:18   #3
Sbq
 
Регистрация: 03.03.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
Добавьте процедуры добавления в начало и удаления из конца.
Вообще то они там есть! это динамическая лчередь! а мне нужен список! просто нужно прии помощи узла и указателя а также подключения библиотеки - написать список, вот как ----> у меня проблемы(
Sbq вне форума
Старый 12.03.2009, 17:18   #4
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Ваш код не смотрел, но что такое очередь? Это структура хранения данных, работающая по принципу "первый зашел, первый вышел". Следовательно там должны быть функции для добавления в конец и удаления из начала. Теперь, что такое список? Это структура, в которой можно добавить данные в любое место, а так же удалить данные из любого места. Следовательно, что бы преобразовать вашу очередь в список, нужно заменить функцию добавления в конец, на функцию добавления в любое место, а также функцию удаления первого элемента, на функцию удаления любого элемента.
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума
Старый 12.03.2009, 21:09   #5
Sbq
 
Регистрация: 03.03.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Blade Посмотреть сообщение
Ваш код не смотрел, но что такое очередь? Это структура хранения данных, работающая по принципу "первый зашел, первый вышел". Следовательно там должны быть функции для добавления в конец и удаления из начала. Теперь, что такое список? Это структура, в которой можно добавить данные в любое место, а так же удалить данные из любого места. Следовательно, что бы преобразовать вашу очередь в список, нужно заменить функцию добавления в конец, на функцию добавления в любое место, а также функцию удаления первого элемента, на функцию удаления любого элемента.
можете мне это не обьяснять - я это прекрасно знаю, и вот когда нужно было писать программу, то спросила у своего преподавателя - и она мне дала четкий ответ на вопрос: что я должна написать прогу для очереди - где элементы будут удаляться не только сначала и добавляться в конец - а и удаляться со средины и добавляться туда же! Соответственно должен быть сделан и список, только с использованием узлов и указателей! Очередь я уже зделала (програмный код см. выше). Осталось преобразовать в список! Как это сделать я не знаю.... у меня просто не получается, вот я и прошу помощи у тех -- кто знает!!!!
Sbq вне форума
Старый 12.03.2009, 23:00   #6
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Что то мне не вериться что вы можете сделать очередь, а список нет... что тут сложного? Может плохо пытались? Ну для начала хоть бы поиском воспользовались...
http://www.programmersforum.ru/showt...EF%E8%F1%EE%EA
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума
Старый 13.03.2009, 17:08   #7
Sbq
 
Регистрация: 03.03.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Blade Посмотреть сообщение
Что то мне не вериться что вы можете сделать очередь, а список нет... что тут сложного? Может плохо пытались? Ну для начала хоть бы поиском воспользовались...
http://www.programmersforum.ru/showt...EF%E8%F1%EE%EA
Спс) ваша помощь уже не нужна! пока вы отвечали на мой вопрос - я уже нашла ответ! оказывается нужно подключить библиотеку, что б ошибки не выдавали!

Последний раз редактировалось Sbq; 13.03.2009 в 17:11.
Sbq вне форума
Старый 14.03.2009, 00:02   #8
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Мда... весьма многообещающее решение.
Ну ладно. Решили, молодец.
Тема закрыта.
MaTBeu вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стек и очередь. (Delphi) Olgasato Помощь студентам 8 02.04.2010 08:08
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43
Задача на очередь Freer Общие вопросы C/C++ 26 06.11.2008 01:14
очередь odi_noki Общие вопросы Delphi 3 24.10.2008 12:09
Очередь, нид хэлп Roman-S Общие вопросы C/C++ 1 15.03.2008 23:40