Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 2 февраль.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
- struct Single_node {
- int val;
- Single_node *next;
- };
- class Single_list {
- private:
- Single_node *head;
- Single_node *tail;
- public:
- Single_list(); //+
- Single_list(int); //+
- ~Single_list();
- bool empty(); //+
- void push_front(int); //+
- void pop_front(); //+
- void clear();
- int& front();//+
- int size(); //+
- void print(); //+
- };
- Single_list::Single_list() {
- Single_node *p = new Single_node;
- p->next = 0; tail = p; head = p;
- }
- Single_list::Single_list(int a) {
- Single_node *p = new Single_node;
- p->next = 0; tail = p;
- Single_node *node = new Single_node;
- node->val = a; node->next = tail; head = node;
- }
- Single_list::~Single_list() {
- while (head != 0) {
- Single_node *node = head;
- head = head->next;
- delete node;
- }
- }
- bool Single_list::empty() {
- return (tail == head);
- }
- void Single_list::push_front(int a) {
- Single_node *node = new Single_node;
- node->val = a; node->next = head;
- head = node;
- }
- void Single_list::pop_front() {
- Single_node *node = head->next;
- delete head;
- head = node;
- }
- void Single_list::clear() {
- while (head != tail) {
- Single_node *node = head->next;
- delete head;
- head = node;
- }
- }
- int& Single_list::front() {
- int &p = head->val;
- return p;
- }
- void Single_list::print() {
- for (Single_node *node = head; node != tail; node = node->next)
- cout << node->val << " ";
- cout << endl;
- }
- int Single_list::size() {
- int n = 0;
- for (Single_node *node = head; node != tail; node = node->next)
- n++;
- return n;
- }
- int main()
- {
- Single_list list;
- for (int i = 0; i < 5; i++) {
- list.push_front(i);
- list.print();
- }
- list.front() = 9;
- while (!list.empty()) {
- list.print();
- list.pop_front();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement