Помогите с Задачкой

  • Автор темы pactok
  • Дата начала
P

pactok

#1
Всем привет,Помогите с задачкой плз...косячит в с++ пишет кучу ошибок,но вроде всё верно
Вот Задание : Необходимо реализовать двусвязный список. В качестве информационной части выступают указатели на массивы строк. Необходимо реализовать следующие функции: добавление элементов в начало/конец массива, вывод конкатенации строк всех элементов на экран, удаление из списка памяти (включая информационную часть, поскольку она тоже определяется указателями).
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content">
Код:
#ifndef list
#define list

typedef struct lplist{
char* str;
lplist* next;
lplist* previous;
} NODE;

void add(NODE*& first, NODE newItem);
void del(NODE*& first);
void output(NODE* first);
void flush(NODE*& first);
#endif
#include "stdafx.h"
#include <iostream>
#include "list.h"
using namespace std;


void add(NODE*& first, NODE Item){
if (first==NULL) {
first = new NODE;
first->str = Item.str;
first->next = NULL;
first->previous = NULL;

}
else {
NODE* p;
p = new NODE;
p->str = Item.str;
p->next = first;
first->previous = p;
first = p; 
}


}

void addLast(NODE*& first, NODE Item) {

NODE q,p=First;
While(p->Next != NULL)
p = p->Next;
q=new Node;
q-> Item.str = Item.str;
p->Next=q;
q->Next = NULL;
}
void output(NODE*first){
while (first!=NULL)
{ 
cout<<first->str;
first=first->next;
}
}

void flush(NODE*& first){
while (first!=NULL)
{
NODE * prev = first;
first=first->next;
delete prev;
}
}

#include "stdafx.h"
#include <iostream>
#include "list.h"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{ 
NODE * first = NULL;
NODE Mc, Mc1, Mc2;
Mc.str="Cat";
Mc1.str="Come";
Mc2.str="Home";
add(first, Mc);
add(first, Mc1);
add(first, Mc2);
output(first);
cout<<" ";
del(first);
output(first);
flush(first);
return 0;
}