Автор Леня! задал вопрос в разделе Другие языки и технологии
Как в c# реализовать двусвязный список? и получил лучший ответ
Ответ от Johnny Strange[эксперт]
struct TPers { AnsiString Fam; int Year, Mark, Degree; // Год, Оценка, квалификация TPers *pNext; TPers *pPrev; }; TPers *p0 = NULL; TPers *pCurr = NULL; void PersAdd() /// Добавление Новой Записи { TPers *pNew = new TPers; // pNew - Новая Структура if(p0 == NULL) // р0 - указатель на ПЕРВУЮ структуру в списке. {p0 = pNew; // сохраняем указатель на ПЕРВУЮ структуру в списке. pNew->pPrev = NULL;} // Предыдущей нет ! else // Уже существуюет Список структур {pCurr->pNext = pNew; // pCurr указывает на последнюю добавленную // Сохраним в Последней структуре ссылку на вновь созданную. pNew->pPrev = pCurr;} // Новая должна иметь ссылку на предыдущую pNew->pNext = NULL; // Следующей за НОВОЙ структурой нет (пока, возможно появится) // Заполним Новую Структуру данными pNew->Fam = ...// возможно что-то там еще надо... . pNew->Nam........ pCurr = pNew; // Переведем указатель последней структуры на вновь созданную. } void ReadStruct() // Проход по всем структурам с чтением информации из них { pCurr = p0; while(pCurr != NULL) { AnsiString Fam = pCurr->Fam; AnsiString Nam = pCurr->Nam; ... pCurr = pCurr->pNext; ShowMessageBox(Fam + Nam + .); } } Удаление записей Писать лень. А то память отожрал, а освобождать надо.
C++. Указатели. Связный список. Как добавить элемент в конец списка? Вопрос для разбирающихся
Ваш next, последнего элемента в списке указывает на NULL, а новый элемент списка вы создаёте по
подробнее...
Что такое Линейный список? Объясните пожалуйста своими словами, что такое линейный список?
Линейный список представляет собой последовательность n≥0 узлов Х [1], X[2], … , X[n], важнейшей
подробнее...
Списки в Си. Подскажите, пожалуйста, сайт, где доступно и понятно изложена тема линейных списков на Си (не ++)
односвязный циклический список это как бы рукурсивное объявление струкутыр, точнее указателя на нее
подробнее...