PDA

Просмотр полной версии : ЛДС C++


Epic wave
06.10.2009, 21:59
Привет. Вот вообщем на втором курсе столкнулся с линейно двунаправленным списком и т.к. я на первом курсе успешно прослушал про него сейчас возникли проблемы, если вам не сложно прошу помочь.
На данном этапе не работает вывод, хотя и ввод я не уверен что написал верно, в финале программа должна :
- Создавать Линейно Двунаправденный Список(Дальше ЛДС)
- Вывод информации
- Поиск по порядковому номеру
- удалять элемент перед элементом списка с минимальным ключом
- Сохранение в файле
- Открытие из файла. Программа пишется под DOS


#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);

}



И если не сложно пожалуйста комментируйте т.к. всё таки хотелось разобраться в этом.

slesh
07.10.2009, 09:50
раза с пятого прочел что написано ЛДС. А не ЛСД


Вообще лучше всего начни с правильного оформления кода. Потому что код хоть и маленький понимается чуть сложновато из-за разброса слов.

Nikituki
08.10.2009, 20:21
В функции insert у тебя выделяется память только для головы списка, независимо от количества элементов....
Вообще, по спискам куча инфы и простой запрос в гугле тебе наверняка поможет ;)


раза с пятого прочел что написано ЛДС. А не ЛСД


Я тоже=)