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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ [DLL] Проблема с функцией http://www.cyberforum.ru/cpp-beginners/thread573217.html
Здравствуйте, у меня проблема с вызовом функции ASM в DLL. Использую так, всё ок: DWORD id = 0x1F8; DWORD f = 0x0043A0B0; __asm push id __asm call f Если так, то выкидывает.
C++ OpenGL C++ вывод текста Подскажите самый простой способ вывести текст в определенном месте. http://www.cyberforum.ru/cpp-beginners/thread573203.html
C++ Найти все вхождения строки T в строке S!
Найти все вхождения строки T в строке S Входные данные В первой строке входного файла INPUT.TXT записана строка S, во второй строке записана строка T. Обе строки состоят только из латинских букв. Длины строк больше 0 и меньше 50 000. Выходные данные В выходной файл OUTPUT.TXT нужно вывести все вхождения строки T в строку S в порядке возрастания. Нумерация позиций строк...
C++ неориентированный граф
Здравствуйте! Используя методы объектно-ориентированного программирования требуется реализовать абстрактную структуру данных (класс), называемую «граф»(G(V,E)) Для выполнения базовых операций над графами требуется реализовать следующие методы класса (операторы): AddVertex (v1) – добавление вершины к графу G, в случае существования в составе G указанной вершины должно выдаваться...
C++ Определить максимальную одинаковую подстроку, принадлежащую двум заданным строкам. Порядок следования букв не меняется. http://www.cyberforum.ru/cpp-beginners/thread573180.html
Определить максимальную одинаковую подстроку, принадлежащую двум заданным строкам. Порядок следования букв не меняется. INPUT.TXT OUTPUT.TXT qwerty ---- ert dertfg zaqwsx ---- zaqw cdezaqwerty
C++ как написать Как вот это написать в программном коде в Visual c++ подробнее

Показать сообщение отдельно
Jenia
Сообщений: n/a
13.05.2012, 17:30     Двусвязный список
начал изучать двусвязный список, так как надо сдать лабу по этой теме, но не очень хорошо понимаю его организацию, помогите пожалуйста, мне нужно доделать добавление и удаление элемента в любое место двусвязного списка, вот я написал как создать список, вывести на экран, обход слева направо и справо налево.......
#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();
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru