Strona główna > C++, Lista, Obiektowe > Lista Obiektowa implementacja

Lista Obiektowa implementacja

26 Styczeń 2012 Dodaj komentarz Go to comments
#include <cstdlib>
#include <iostream>
using namespace std;

class Lista
{
	struct node
    {
    	node *next;
    	int val;
    };
    public:
        struct node *head;
		Lista();
		~Lista();
		Lista(const Lista &A);
		void Add(int a);
		void Del();
		void Show();
                Lista & operator+(int a);
 };

Lista::Lista()
{
	cout<<"Konstruktor"<<endl;
	head=NULL;
}

Lista::~Lista()
{
	cout<<"Destruktor"<<endl;
}

Lista::Lista(const Lista& A)
{
	struct node *wsk=A.head;
	while(wsk)
	{
		Add(wsk->val);
		wsk=wsk->next;
	}
}

void Lista::Add(int a)
{
	struct node *nowy=new node;
	nowy->val=a;
	nowy->next=NULL;

	if(head==NULL) head=nowy;
	else
	{
		struct node *tmp=new node;
        tmp=head;
		while(tmp->next)
		{
			tmp=tmp->next;
		}
		tmp->next=nowy;
	}
}


Lista & Lista::operator+(int a)
{
    struct node *nowy=new node;
    nowy->val=a;
    nowy->next=NULL;
    
    if(head==NULL) head=nowy;
    else
    {
        struct node *tmp=new node;
        tmp=head;
        while(tmp->next)
        {
            tmp=tmp->next;
        }
        tmp->next=nowy;
    }
}

 void Lista::Del()
{
	if(head==NULL) return;
	else
	{
		struct node *tmp1,*tmp2;
		tmp1=head;
		while(tmp1->next)
		{
			tmp2=tmp1;
			tmp1=tmp1->next;
		}
		tmp2->next=NULL;
		delete tmp1;
	}
}

void Lista::Show()
{
	struct node *tmp;
	tmp=head;
	while(tmp)
	{
		cout<<tmp->val<<endl;
		tmp=tmp->next;
	}
}

int main(int argc, char *argv[])
{
    {
        Lista A;
    	A.Add(2);  A.Add(3);  A.Add(4);
    	A.Show();  A.Del();
        cout<<endl<<endl;     A.Show();

        Lista B;   B=A;
        B.Show();
    }

	system("PAUSE");
    return EXIT_SUCCESS;
}
  1. 7 Wrzesień 2013 o 5:28 pm

    It’s wonderful that you are getting ideas from this article as well
    as from our discussion made at this place.

  2. 19 Październik 2016 o 3:15 am

    Simply want to say your article is as amazing. The clearness on yur publish is just spectacular and i can suppose you are knowledgeable on this subject.
    Fine with your permission let me to seize your feed to stay upp to date with impending post.
    Thnk you a million and please keep up the enjoyable work.

  1. No trackbacks yet.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d bloggers like this: