Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++]Struktury danych, Usuwanie

Ostatnio zmodyfikowano 2016-05-03 00:51
Autor Wiadomość
redie
Temat założony przez niniejszego użytkownika
[C++]Struktury danych, Usuwanie
» 2016-05-02 21:01:17
Cześć, nie wiem czy mogę tutaj pisać takie rzeczy ale próbuję napisać program (do zadania). Treść podpunktu z zadania(z którym mam problem).
procedurę UsunCiagi usuwającą ze sznura podanego jako parametr ciągi sąsiednich elementów
sznura w następujący sposób: usuwamy M elementów sznura (lub tyle ile jest, gdy jest mniej),
następnie omijamy dwa elementy, usuwamy kolejnych M elementów, pozostawiamy dwa, itd. (M
jest liczbą całkowitą dodatnią będącą parametrem procedury). Pamięć zajmowana przez usuwane
elementy ma zostać zwolniona, procedura nie może używać tablic ani pomocniczych sznurów;

A to jest kod, który jest z całego programu (najpotrzebniejsze, żeby wiedzieć o co mi chodzi)
C/C++
#include"sznur.h"
#include<iostream>
using namespace std;
Sznur::Sznur()
{
    head = NULL;
    tail = NULL;
}
Sznur::~Sznur()
{
    while( head != NULL )
    {
        Node * killer = head;
        head = killer->next;
        delete( killer );
    }
}
void Sznur::Wstaw( int value )
{
    Node * pred = NULL;
    Node * succ = head;
    while( succ != NULL && succ->T > value )
    {
        pred = succ;
        succ = succ->next;
    }
    Node * neew = new Node( value, succ );
    if( pred != NULL )
         pred->next = neew;
    else
         head = neew;
   
}
void Sznur::Wypisz() const
{
    Node * walker = head;
    while( walker != NULL )
    {
        cout << walker->T << " ";
        walker = walker->next;
    }
}
void Sznur::UsunCiagi( int M )
{
    Node * pred = NULL;
    Node * succ = head;
    while( succ != NULL )
    {
        Node * pred2 = succ->next;
        for( int i = 0; i < M; i++ )
        {
            Node * killer = succ;
            pred2 = succ->next;
            if( pred != NULL ) { pred->next = succ->next; }
            else head = succ->next;
           
            if( pred2 == tail ) { tail = pred; }
            pred2->next = NULL; pred2 = NULL;
            while( killer != NULL )
            {
                Node * k = killer;
                killer = killer->next;
                delete( k );
            }
        }
        pred = succ->next;
        succ = succ->next->next;
    }
}
P-147886
Rashmistrz
» 2016-05-02 22:22:40
Podaj treść całego zadania, a kod wstawiaj w znaczniki [cpp] ... [/cpp].
P-147888
wojtu111
:D
» 2016-05-03 00:51:49
http://math.uni.lodz.pl​/~cybula/ada​/1415l-prstr-kol1.pdf
Zestaw 1-A, Zadanie 1 podpunkt 4, Pełna treść (Znalezione w google)
P-147893
« 1 »
  Strona 1 z 1