Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- //struct element {
- //int wartosc wart;
- //element * nastepny ;
- //}
- class Lista {
- public :
- typedef int wartosc ;
- private :
- struct element {
- wartosc wart ;
- element *nastepny ;
- };
- public :
- typedef element *pozycja ;
- private :
- pozycja pierwszy ;
- public :
- Lista ();
- ~Lista ();
- bool empty ();
- wartosc front ();
- wartosc back ();
- void push_front ( wartosc );
- void push_back ( wartosc );
- void pop_front ();
- void pop_back ();
- void insert ( pozycja , wartosc );
- void erase ( pozycja );
- pozycja first ();
- pozycja last ();
- pozycja next ( pozycja );
- wartosc & at ( pozycja );
- };
- int main()
- {
- // Lista moja_lista; //<- proby Marcioszki xDDD
- // moja_lista.push_front()
- return 0;
- }
- Lista :: Lista (){
- pierwszy = NULL ;
- }
- Lista::~Lista(){
- pozycja pom ;
- while ( pierwszy != NULL ){
- pom = pierwszy ;
- pierwszy = pierwszy -> nastepny ;
- delete pom;
- }
- }
- bool Lista :: empty (){
- if ( pierwszy == NULL )
- return true ;
- else
- return false ;
- }
- Lista :: wartosc Lista :: front (){
- return pierwszy -> wart ;
- }
- Lista :: wartosc Lista :: back (){
- pozycja it = pierwszy ;
- while ( it -> nastepny != NULL )
- it = it -> nastepny ;
- return it -> wart ;
- }
- void Lista :: push_front ( Lista :: wartosc w ){ //dodawanie elementu na poczatku listy
- pozycja pom =new element ;
- pom -> wart = w ;
- pom -> nastepny = pierwszy ;
- pierwszy = pom ;
- }
- void Lista :: push_back ( Lista :: wartosc w ){
- if ( pierwszy == NULL )
- push_front ( w );
- else {
- pozycja it = pierwszy ;
- while ( it -> nastepny != NULL )
- it = it -> nastepny ;
- it -> nastepny =new element ;
- it -> nastepny -> wart = w ;
- it -> nastepny -> nastepny = NULL ;
- }
- }
- void Lista :: pop_front (){
- pozycja pom = pierwszy ;
- pierwszy = pierwszy -> nastepny ;
- delete pom ;
- }
- void Lista :: pop_back (){
- if ( pierwszy -> nastepny == NULL ){
- delete pierwszy ;
- pierwszy = NULL ;
- }
- else {
- pozycja it = pierwszy ;
- while ( it -> nastepny -> nastepny != NULL )
- it = it -> nastepny ;
- delete it -> nastepny ;
- it -> nastepny = NULL ;
- }
- }
- void Lista :: insert ( pozycja p , wartosc w ){
- if ( p != NULL ){
- pozycja pom =p -> nastepny ;
- p -> nastepny = new element ;
- p -> nastepny -> nastepny = pom ;
- p -> nastepny -> wart = w ;
- }
- else
- push_front ( w );
- }
- void Lista :: erase ( pozycja p ){
- if ( p != NULL ){
- pozycja pom =p -> nastepny ;
- p -> nastepny = pom -> nastepny ;
- delete pom ;
- }
- else
- pop_front ();
- }
- Lista :: pozycja Lista :: first (){
- return NULL ;
- }
- Lista :: pozycja Lista :: last (){
- if ( pierwszy -> nastepny == NULL )
- return NULL ;
- else {
- pozycja it = pierwszy ;
- while ( it -> nastepny -> nastepny != NULL )
- it = it -> nastepny ;
- return it ;
- }
- }
- Lista :: pozycja Lista :: next ( pozycja p ){
- if ( p == NULL )
- return pierwszy ;
- else
- return p -> nastepny ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement