Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Node
- {
- int value;
- Node* next;
- Node *prev; //Указатели на адреса следующего и предыдущего элементов списка
- };
- class ListSequence {
- private:
- int Length;
- Node* head;
- Node* tail;
- public:
- void Append(int item) {
- Node* tmp = new Node; //Выделение памяти под новый элемент структуры
- tmp->next = NULL; //Указываем, что изначально по следующему адресу пусто
- tmp->value = item;
- if (head = NULL) { //если список пустой
- head = tmp;
- tail = tmp;
- tmp->prev = NULL;
- }
- else { //список не пустой
- tmp->prev = tail; //Указываем адрес на предыдущий элемент в соотв. поле
- tail->next = tmp; //Указываем адрес следующего за хвостом элемента
- tail = tmp;
- }
- }
- void Show() {
- Node* tmp = head;
- while (tmp!=NULL) { //пока не дойдем до конца
- cout << tmp->value << " "; //Выводим каждое считанное значение на экран
- tmp = tmp->next;
- }
- cout << "\n";
- }
- };
- int main() {
- ListSequence A;
- A.Append(1);
- A.Append(2);
- A.Append(3);
- A.Show();
- /*Sequence A;
- A.newEmpty();
- A.getLength();
- cout << endl;
- A.Append(23);
- A.getLength();
- A.GetFirst();
- A.GetLast();
- A.Get(0);
- A.Get(-1);
- A.Get(1);
- cout << endl;
- A.Append(43);
- A.getLength();
- A.Get(0);
- A.Get(1);
- A.Get(-1);
- A.Get(2);
- cout << endl;
- A.Prepend(53);
- A.getLength();
- A.GetFirst();
- A.GetLast();
- A.Get(0);
- A.Get(1);
- A.Get(-1);
- A.Get(3);
- cout << endl;
- Sequence A2;
- A2 = A.GetSubsequence(1, 1);
- A2.getLength();
- A2.GetFirst();
- A2.GetLast();
- */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement