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);
}
И если не сложно пожалуйста комментируйте т.к. всё таки хотелось разобраться в этом.
На данном этапе не работает вывод, хотя и ввод я не уверен что написал верно, в финале программа должна :
- Создавать Линейно Двунаправденный Список(Дальше ЛДС)
- Вывод информации
- Поиск по порядковому номеру
- удалять элемент перед элементом списка с минимальным ключом
- Сохранение в файле
- Открытие из файла. Программа пишется под 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);
}
И если не сложно пожалуйста комментируйте т.к. всё таки хотелось разобраться в этом.