Форум программистов, компьютерный форум CyberForum.ru

Двусвязный список - C++

Восстановить пароль Регистрация
 
Jenia
Сообщений: n/a
13.05.2012, 17:30     Двусвязный список #1
начал изучать двусвязный список, так как надо сдать лабу по этой теме, но не очень хорошо понимаю его организацию, помогите пожалуйста, мне нужно доделать добавление и удаление элемента в любое место двусвязного списка, вот я написал как создать список, вывести на экран, обход слева направо и справо налево.......
#include "List.h"
#include <iostream>
const int n=10;
using namespace std;

list::list()
{
pHead=NULL;
pPrev=NULL;
countElem=0;
}
void list::create(Type data)
{
Node *temp=new Node;
if(pHead==NULL)
{
temp->pred=NULL;
temp->next=NULL;
pHead=temp;
}
else
pPrev->next=temp;
temp->data=data;
temp->next=NULL;
temp->pred=pPrev;
pPrev=temp;
countElem++;
}
void list:rint()
{
Node *pTemp=pHead;
int i=0;
while(pTemp!=NULL)
{
cout<<i++<<"\n";
pTemp=pTemp->next;
}
cout<<endl;
}
void list::obhod_sleva()
{
while(pHead!=NULL)
{
cout<<pHead->data<<"\n";
if(pHead->next==0)
break;
pHead=pHead->next;
}
}
void list::obhod_sprava()
{
while(pPrev!=NULL)
{
cout<<pPrev->data<<"\n";
if(pPrev->pred==0)
break;
pPrev=pPrev->pred;
}
}
void list::addHead(int n)
{
Node *temp=new Node;
temp->pred=0;
temp->data=n;
temp->next=pHead;
if(pHead=0)
pHead->pred=temp;
if(countElem==0)
pHead=pPrev=temp;
else
pHead=temp;
countElem++;
}
Ну здесь идёт реализация самих функций, так как реализовывал двусвязный список через библиотеку.........

List.h
#include <iostream>
using namespace std;
typedef int Type;
struct Node
{
Type data;
Node *next;
Node *pred;
};
struct list
{
Node *pHead;
Node *pPrev;
int countElem;
list();
void create(Type);
void print();
void obhod_sleva();
void obhod_sprava();
void addHead(int n);
void addPrev(int c);
void insert(int pos);
void del();
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2012, 17:30     Двусвязный список
Посмотрите здесь:

C++ Двусвязный линейный список
C++ Двусвязный линейный список
C++ двусвязный динамический список
C++ Линейный двусвязный список
Наследование и двусвязный список C++
C++ Линейный двусвязный список
C++ Двусвязный список из структур
C++ Линейный двусвязный список
Линейный Двусвязный список! C++
C++ Циклический двусвязный список
Кольцевой двусвязный список C++
Двусвязный список с методами C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru