P
pactok
Всем привет,Помогите с задачкой плз...косячит в с++ пишет кучу ошибок,но вроде всё верно
Вот Задание : Необходимо реализовать двусвязный список. В качестве информационной части выступают указатели на массивы строк. Необходимо реализовать следующие функции: добавление элементов в начало/конец массива, вывод конкатенации строк всех элементов на экран, удаление из списка памяти (включая информационную часть, поскольку она тоже определяется указателями).
Вот Задание : Необходимо реализовать двусвязный список. В качестве информационной части выступают указатели на массивы строк. Необходимо реализовать следующие функции: добавление элементов в начало/конец массива, вывод конкатенации строк всех элементов на экран, удаление из списка памяти (включая информационную часть, поскольку она тоже определяется указателями).
Код:
#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;
}