Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Вопросы начинающих программистов
Перезагрузить страницу С++ Естественное двухпутевое слияние Дек
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
*igor* *igor* вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2011
Question С++ Естественное двухпутевое слияние Дек - 18.02.2013, 17:03

Реализация связи элементов линейного списка - указатели. Способ организации линейного связанного списка - дек.
Алгоритм сортировки - Естественное двухпутевое слияние. Не могу написать код сортировки, сам алгоритм понял, а с кодом разобраться не могу. Помогите заочнику закрыть задолжность

Вот программа без сортировки

#include "stdafx.h"
#include "iostream"

using namespace std;

struct Value
{
public:int val;
Value* Next;
Value* Prev;
Value(int n):Next(0),Prev(0),val(n){};
};
class deq
{
Value* Head;
Value* Tail;
public:void Add_First(int n);
public:void Add_Last(int n);
public:void Delete_First();
public:void Delete_Last();
public:void Print();
public:void Sort();
public:deq(){Head=NULL;Tail=NULL;}
};
void deq::Add_First(int n)
{
Value* Elem=new Value(n);
Elem->Prev=NULL;
if (Head!=NULL)
{
Elem->Next=Head;
Head->Prev=Elem;
Head=Elem;
}
else
{
Elem->Next=NULL;
Head=Tail=Elem;
}
}
void deq::Add_Last(int n)
{
Value* Elem=new Value(n);
Elem->Next=NULL;
if (Tail!=NULL)
{
Elem->Prev=Tail;
Tail->Next=Elem;
Tail=Elem;
}
else
{
Elem->Next=NULL;
Tail=Head=Elem;
}
}
void deq::Delete_First()
{
Value *p;
p=Head->Next;
delete Head;
Head=p;
p->Prev=NULL;
}
void deq::Delete_Last()
{
Value *p;
p=Tail->Prev;
delete Tail;
Tail=p;
p->Next=NULL;
}
void deq::Print()
{
Value *p=Head;
while(p!=NULL)
{
cout<<p->val<<" ";
p=p->Next;
}
cout<<"\n";
}
void deq::Sort()
{}
int main()
{ deq elements;

elements.Add_First(15);
elements.Add_First(1);
elements.Add_First(3);
elements.Add_First(7);
elements.Add_First(9);
elements.Add_Last(4);
elements.Add_Last(6);
elements.Print();
elements.Sort();
cout << "\n";
elements.Print();

system("pause");
return 0;
}
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слияние ячеек в Excel Tnmkon Вопросы начинающих программистов 2 19.11.2010 09:41
Сбалансированное N-ленточное слияние Dixx С/С++ 5 19.04.2010 21:45
Слияние упорядоченных списков elfochka Pascal 1 20.12.2009 10:53
Слияние списков sprew88 Prolog 5 20.12.2007 18:23
Слияние ячеек в таблице se7en Delphi 4 02.08.2005 08:37
Как решить слияние упорядоченных списков Кошастый Prolog 14 30.05.2004 13:26
Слияние папок при формате диска NTFS imported_@LeX Вопросы начинающих программистов 0 18.04.2004 12:02



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов