Тема: Зневадження програми формування списків*

Сформувати односпрямований список з ланкою-заголовком і видалити дві наступні літери після літери "T". Вивести на друк обидва списки.
Допоможіть будь ласка!
Я маю програму, яку потрібно відлагодити...

2

Re: Зневадження програми формування списків*

Я маю програму, яку потрібно відлагодити...

Може тоді покажете код, який вже написано? :)

3

Re: Зневадження програми формування списків*

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <string.h>
using namespace std;


class NameDataSet
{
  public:
        char szName[130];
        NameDataSet* pNext;
};

// вказівник на перший запис
NameDataSet* pHead = 0;
NameDataSet* pNovy = 0;

// добавлення елемента в список
void add(NameDataSet* pNDS)
{
        pNDS->pNext = pHead;
        // заголовок указывает на новую запись
        pHead = pNDS;
}


//читаємо ім'я
NameDataSet* getData()
{
        char nameBuffer[130];
        cout << "\nVvedit bukvu:";
        cin  >> nameBuffer;
        
        // якщо вводимо "0" -то кінець
        if ((stricmp(nameBuffer, "0") == 0))
        {
                return 0;
        }

       NameDataSet* pNDS = new NameDataSet;
        strncpy(pNDS->szName, nameBuffer, 130);
        pNDS->szName[129] = '\0';
        pNDS->pNext = 0;
        // повернення адреси 
        return pNDS;
}

int main(int nNumberofArgs, char* pszArgs[])
{
        cout << "Vvid spusku\n"
                 << "'0' dlya vuhodu\n";

        // створення об'єкта NameDataSet
        NameDataSet* pNDS;
        while (pNDS = getData())
        {
                // добавлення в кінець списку
                add(pNDS);
        }

        cout << "Vuvid spusky:\n";
        pNDS = pHead;
        while(pNDS)
        {
                cout << pNDS->szName <<" ";

                pNDS = pNDS->pNext;
        }
 cout << "\n";
 pNDS = pHead;
        while(pNDS)
        {     
        if (stricmp(pNDS->szName, "t") == 0)
               {strcpy(pNDS->pNext->pNext->szName, "0");
               strcpy(pNDS->pNext->szName, "0");}
               pNDS = pNDS->pNext;
        }
        pNDS = pHead;
        while(pNDS)
        {       if (stricmp(pNDS->szName, "0") == 1)
              cout << pNDS->szName <<" ";
                pNDS = pNDS->pNext;
        }
 
        system("PAUSE");
        return 0; 
}

4

Re: Зневадження програми формування списків*

Замість заповнення 0-ми щоб видаляло?

5

Re: Зневадження програми формування списків*

ні ми вводимо букви, а 0 для того щоб зупитнити ввід букв.