Привет. Вот вообщем на втором курсе столкнулся с линейно двунаправленным списком и т.к. я на первом курсе успешно прослушал про него сейчас возникли проблемы, если вам не сложно прошу помочь. На данном этапе не работает вывод, хотя и ввод я не уверен что написал верно, в финале программа должна : - Создавать Линейно Двунаправденный Список(Дальше ЛДС) - Вывод информации - Поиск по порядковому номеру - удалять элемент перед элементом списка с минимальным ключом - Сохранение в файле - Открытие из файла. Программа пишется под DOS Code: #include <iostream.h> #include <conio.h> #include <stdio.h> #include <iomanip.h> #include <string.h> #include <fstream.h> class lds{ int n,b,r,key; lds * next; lds * prev; public: static lds * p; void insert(); void output(); void search(); void add(); void del(); void save(); void open(); }; lds*lds::p; void lds::insert(){ lds * q; clrscr(); p=new lds; cout<<"How many alements? :"; cin>>n; cout<<"Enter first element: "; cin>>p->b; q=p; for(int i=2;i<=n;i++){ cout<<"\nEnter "<<i<<" element: "; cin>>p->b; p->next = NULL; p->prev = NULL; } } void lds::output(){ int nk=0; lds *q; q=p; while(q!=NULL){ nk++; cout<<nk<<"\n"; cout<<q->b; q = q->next; }} void main(){ lds obj; clrscr(); int option; do{ cout<<"\nEnter action: "; cin>>option; switch(option){ case 1: obj.insert(); break; case 2: obj.output(); break; } } while(option!=9); } И если не сложно пожалуйста комментируйте т.к. всё таки хотелось разобраться в этом.
[offtop] раза с пятого прочел что написано ЛДС. А не ЛСД [/offtop] Вообще лучше всего начни с правильного оформления кода. Потому что код хоть и маленький понимается чуть сложновато из-за разброса слов.
В функции insert у тебя выделяется память только для головы списка, независимо от количества элементов.... Вообще, по спискам куча инфы и простой запрос в гугле тебе наверняка поможет Я тоже=)