| 
| 
 | Вопрос # 5 494/ вопрос открыт / | 
 |  Здравствуйте, эксперты!Я хочу узнать как можно создать список, добавить новый элемент к нему и удалить элемент.
 
|  |   Вопрос задал: Aristotel (статус: Посетитель)Вопрос отправлен: 12 июля 2011, 11:03
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Gooddy Здравствуйте, Aristotel!Отвечаю на вопрос так, как написано в условии. Т.к. небыло пояснений буду считать, что нужен список строк, например:
 1. "Вася"
 2. "Петя"
 3. "Григорий"
 
 Тут есть два варианта - использовать TStrings, или TList. TList помощнеее, но сложнее для пономания и использования, так что приведу пример с TStringList.
 
 См. приложение.
 
|  | Ответ отправил: Gooddy (статус: 3-ий класс)Время отправки: 12 июля 2011, 14:23
 Оценка за ответ: 4
 Комментарий к оценке: А можно как-то найти заданный элемент в списке и удалить его? |  
 Мини-форум вопросаВсего сообщений: 100; последнее сообщение — 15 июля 2011, 14:41; участников в обсуждении: 7. Страницы: [1] [2] [3] [4] [5] [Следующая »]  
|   | min@y™ (статус: Доктор наук), 12 июля 2011, 11:04 [#1]:А список из каких элементов нужен? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Вадим К (статус: Академик), 12 июля 2011, 11:05 [#2]:наверное правильнее спрашивать так - какой именно список? TListBox, TList, связанный список... Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Aristotel (статус: Посетитель), 12 июля 2011, 11:07 [#3]:А хер его знает |  
|   | Вадим К (статус: Академик), 12 июля 2011, 11:07 [#4]:Тогда точно никто не поможет. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | min@y™ (статус: Доктор наук), 12 июля 2011, 11:10 [#5]: Цитата (Aristotel): А хер его знает  Супер!
 Вызовет тебя начальник, и спросит: на сколько тебе повысить зарплату? А ты вот так ему и ответь.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Aristotel (статус: Посетитель), 12 июля 2011, 11:10 [#6]:А какая разница между TListBox, TList и связанным списком? |  
|   | Aristotel (статус: Посетитель), 12 июля 2011, 11:12 [#7]:Ну вообще то мне нужно сделать прогу как эта только на Delphi токо она почему то не пашет Вот код:
 #include <stdio.h>
 #include <conio.h>
 #include <stdlib.h>
 #include <ctype.h>
 #include <malloc.h>
 #define QUE struct que                /* tip dannih */
 QUE
 {
 int info;
 QUE *next;
 };
 void insert(QUE **q, int item);
 void display(QUE * q);
 QUE * create_list();
 QUE *q=NULL;        /* ob'yavlenie spiska */
 /* ======= funktsiya vivoda spiska ====== */
 void display(QUE * q)
 {QUE * current = q;
 printf("\nLIST=");
 if (current)
 {
 while(current)
 {printf("%d-->", current->info);
 current = current ->next;
 }
 printf("NULL");
 }
 else
 printf("pustoy");
 printf("\n");
 }
 /* ====== funktsiya sozdaniya spiska ====== */
 QUE * create_list()
 {QUE * list=NULL;
 int done=1, info, c;
 printf("Creation of list:\n");
 while(done)
 {printf("Add new element? (Y/N)");
 c=getch();
 c=toupper(c);
 switch(c)
 {case 'Y':printf("\n Element=");
 scanf("%d", &info);
 insert(&q, info);
 break;
 case 'N': done=0;
 break;
 }
 }
 return (list);
 }
 /* === funktsiya dobavleniya elementa k spisku === */
 void insert (QUE **q, int item)
 {
 QUE *current=*q;
 QUE *previous=0;
 QUE *new_node;
 while(current)
 {
 previous=current;
 current=current->next;
 }
 new_node=(QUE*) malloc (sizeof (QUE));
 new_node->info=item;
 if (previous)
 {
 new_node->next=previous->next;
 previous->next=new_node;
 }
 else
 {
 *q=new_node;
 (*q)->next=0;
 }
 }
 // Функция исключения
 QUE* Delete (QUE **q, int item)
 {
 QUE * current = *q;		// Входной список
 QUE * new_node = NULL;	// Наш новый список
 while(current) // Проходим по всему списку
 {
 if(current->info == item) // Если находим наш элемент
 {
 current = current ->next;	// Перемещаемся на следующий
 } else                          // иначе
 {
 insert(&new_node, current->info);	// Вставляем элемент текущего списка в наш новый
 current = current ->next;			// перемещаемся дальше
 }
 }
 return new_node;	// возвращаем наш новый список
 }
 /* ====== glavnaya funktsiya ====== */
 int main()
 {
 create_list();
 display(q);
 printf("\n");
 display(Delete(&q, 1));
 getch();
 return 0;
 }
 |  
|   | Вадим К (статус: Академик), 12 июля 2011, 11:20 [#8]:вот - в этом примере связанный список. А в чем разница между TListBox, TList и связанным списком...
 первое - это компонент, который отображает список строк, второе - класс, фактически массив указателей, а третье - оно в примере выше.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | min@y™ (статус: Доктор наук), 12 июля 2011, 11:22 [#9]: Цитата (Aristotel): А какая разница между TListBox, TList и связанным списком?  Такая же, как между х...ем и трамвайной ручкой.
 
 Цитата (Aristotel): Ну вообще то мне нужно сделать прогу как эта только на Delphi токо она почему то не пашет А что делает эта прога?
 
 Цитата (Aristotel): /* ====== glavnaya funktsiya ====== */ Упал под стол.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Aristotel (статус: Посетитель), 12 июля 2011, 11:23 [#10]:Значит мне нужен связанный список А почему у меня эта прога не работает?
 |  
|   | Aristotel (статус: Посетитель), 12 июля 2011, 11:25 [#11]:Упал под стол - специально для тебя старался)) |  
|   | Вадим К (статус: Академик), 12 июля 2011, 11:26 [#12]:А компилировать пробовали? У меня точно скомпилировалась и даже похоже работает. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Aristotel (статус: Посетитель), 12 июля 2011, 11:28 [#13]:Я пробовал компилить но у меня пишет: Error	1	error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup	MSVCRTD.lib	ll И ещё Error	2	fatal error LNK1120: 1 unresolved externals	C:\Documents and Settings\USER\Мои документы\Visual Studio 2008\Projects\PS10\ll\Debug\ll.exe	1	ll
 |  
|   | min@y™ (статус: Доктор наук), 12 июля 2011, 11:29 [#14]: Цитата (Aristotel): А почему у меня эта прога не работает?  А хер его знает!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Aristotel (статус: Посетитель), 12 июля 2011, 11:31 [#15]:min@y-подъебал +1 |  
|   | Вадим К (статус: Академик), 12 июля 2011, 11:32 [#16]:ну что же поделаешь, если компилировать неправильным компилятором, то и результат будет неправильный. 
 этот код не будет компилироваться в visual studio - нужно немного компилятору вправить мозг, что бы он понимал этот код.
 Лучше наверное его компилировать старым borland C++ compiler.
 
 Но если есть большое желание, то можно для начала указать тип проекта - console application, а main заменить на _tmain (вроде так)
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | min@y™ (статус: Доктор наук), 12 июля 2011, 11:33 [#17]:Скопипастил в dev-c++, сбилдилось с первого раза и работает. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Aristotel (статус: Посетитель), 12 июля 2011, 11:34 [#18]:А Вы компилировали борландским компилятором и у вас нормально скомпилировалась без ошибок? |  
|   | min@y™ (статус: Доктор наук), 12 июля 2011, 11:34 [#19]: Цитата (Aristotel): подъебал +1  Ну ты ж первый начал.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Aristotel (статус: Посетитель), 12 июля 2011, 11:35 [#20]:min@y-что за dev-c++ компилятор? |  Страницы: [1] [2] [3] [4] [5] [Следующая »]  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |