Skip to content

Instantly share code, notes, and snippets.

@Poplava
Created April 2, 2015 04:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Poplava/e8c30de8d0e9e1e6efe7 to your computer and use it in GitHub Desktop.
Save Poplava/e8c30de8d0e9e1e6efe7 to your computer and use it in GitHub Desktop.
#include <fstream>
#include <iostream>
using namespace std;
struct Node
{
float x;
Node* prev;
Node* next;
};
typedef Node* pnode;
void addFirst(pnode &first, float a)
{
pnode p;
p = new Node;
p->x = a;
p->next = nullptr;
p->prev = nullptr;
first = p;
}
void push(pnode &p, float a)
{
pnode q = new Node;
q->next = nullptr;
q->prev = p;
q->x = a;
p->next = q;
p = q;
}
void unshift(pnode &first, float a)
{
pnode p = new Node;
p->next = first;
p->prev = nullptr;
p->x = a;
first->prev = p;
first = p;
}
void add(pnode &p, float a)
{
pnode q = new Node;
q->next = p->next;
q->prev = p;
q->x = a;
p->next->prev = q;
p->next = q;
p = q;
}
void padd(pnode &p, float a)
{
pnode q = new Node;
q->next = p;
q->prev = p->prev;
q->x = a;
p->prev->next = q;
p->prev = q;
p = q;
}
float deleteNode(pnode &p)
{
pnode q;
float a;
q = p;
p->prev->next = p->next;
p->next->prev = p->prev;
a = p->x;
p = q->prev;
delete q;
return a;
}
float pop(pnode &first)
{
pnode p = first;
float a = first->x;
p->next->prev = nullptr;
first = p->next;
delete p;
return a;
}
void readList(pnode first)
{
pnode p = first;
while (p != nullptr) {
cout << p->x << "; ";
p = p->next;
}
cout << endl;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment