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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Jenia
Сообщений: n/a
#1

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

13.05.2012, 17:30. Просмотров 352. Ответов 0
Метки нет (Все метки)

начал изучать двусвязный список, так как надо сдать лабу по этой теме, но не очень хорошо понимаю его организацию, помогите пожалуйста, мне нужно доделать добавление и удаление элемента в любое место двусвязного списка, вот я написал как создать список, вывести на экран, обход слева направо и справо налево.......
#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++
struct Link { string value; Link *prev; Link *succ; Link (const string &amp;v) :value(v), prev(0),succ(0){} }; Link...

Двусвязный список с поддержкой итераторов - C++
Привет, мальчики. Помогите сделать двусвязный список с поддержкой итераторов. Всем :kiss: Тема переименована с &quot;Односвязный...

Динамическая структура — двусвязный список - C++
Помогите пожалуйста срочно. Сам вообще не могу разобраться( Динамическая структура — двусвязный список.Хранимые данные — поставки...

Ошибка в программе Двусвязный список - C++
Помогите пожалуйста исправить ошибку в программе! Проблема в том, что при добавлении 4 и более записей в список и удалении всех их,...

Множество через двусвязный список. - C++
Необходимо реализовать класс множество через двусвязный список. Но проблема у меня стоит в том, что тему списки я не очень понял, когда...

Двусвязный список - функция удаления - C++
Подскажите,где ошибка. Функция удаляет книгу из списка по названию автора... void DeleteBook(List&amp; theList) // функция удаления...

Двусвязный список, фильтрация данных - C++
Добрый день, многоуважаемые форумчане! Я окончательно запутался в этой теме. Очень нуждаюсь в Вашей помощи :( Есть код. Ужасно кривой. ...

Как создать двусвязный список? - C++
Собственно... не шарю, как сделать двусвязный! односвязный вроде как получается. Двусвязный как-то и не очень :( Конструктор: list() {...

Класс типа двусвязный список - C++
Создать класс типа - двусвязный список. Функции-члены добавляют элемент к списку, удаляют элемент из списка. Отображают элементы списка от...

Преобразовать односвязный список в двусвязный - C++
Нужна помощь в написании следующей программы: Дана односвязная цепочка и указатель на ее первый элемент, нужно преобразовать данную цепочку...


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

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

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