Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- class List {
- private:
- struct node {
- int data;
- node* link;
- } *p;
- public:
- List() { p= NULL; }
- void append(int number) {
- node* x;
- node* y;
- if(p == NULL) {
- p = new node;
- p->data = number;
- p->link = NULL;
- }
- else {
- x = p;
- while(x->link != NULL)
- x = x->link;
- y = new node;
- y->data = number;
- y->link = NULL;
- x->link = y;
- }
- }
- void addfirst(int number) {
- node* x;
- x = new node;
- x->data = number;
- x->link = p;
- p = x;
- }
- void addafter(int a, int number) {
- node* x;
- node* y;
- int i;
- for(i=0,x=p; i<a;i++) {
- x = x->link;
- if(x == NULL) {
- std::cout << "You need at least " << a << " elements.\n";
- return;
- }
- }
- y = new node;
- y->data = number;
- y->link = x->link;
- x->link = y;
- }
- void del(int number) {
- node* x;
- node* z;
- x = p;
- if (x->data == number) {
- p = x->link;
- delete x;
- return;
- }
- z = x;
- while(x!=NULL) {
- if (x->data == number) {
- z->link = x->link;
- delete x;
- return;
- }
- z = x;
- x = x->link;
- }
- std::cout << "Element " << number << " not found.";
- }
- void display() {
- node* x;
- std::cout << "\n";
- for(x = p; x != NULL; x = x->link)
- std::cout << x->data << std::endl;
- }
- int count() {
- node* x;
- int counter = 0;
- for(x=p; x != NULL; x = x->link)
- counter++;
- return counter;
- }
- ~List() {
- node* x;
- if (p == NULL)
- return;
- while( p != NULL) {
- x = p->link;
- delete p;
- p = x;
- }
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement