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

Тема в разделе "C/C++/C#", создана пользователем pactok, 18 янв 2011.

  1. pactok

    pactok Гость

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

Поделиться этой страницей