Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <math.h>
- using namespace std;
- struct Node {
- Node* prev = 0;
- int year;
- int ussr;
- int usa;
- int uk;
- int fr;
- };
- struct queue {
- Node* beg;
- Node* end;
- int size;
- };
- void init(queue& qu);
- void push(queue& qu, int year, int ussr, int usa, int uk, int fr);
- void pop(queue& qu);
- void clear(queue& qu);
- int main() {
- queue qu;
- init(qu);
- int year,
- ussr,
- usa,
- uk,
- fr,
- n;
- printf("Введите количество строк:\n");
- scanf("%d", &n);
- for (int i = 0; i < n; ++i) {
- printf("Введите год:\n");
- scanf("%d", &year);
- printf("Введите темпы роста СССР в %:\n");
- scanf("%d", &ussr);
- printf("Введите темпы роста США в %:\n");
- scanf("%d", &usa);
- printf("Введите темпы роста Англии в %:\n");
- scanf("%d", &uk);
- printf("Введите темпы роста Франции в %:\n");
- scanf("%d", &fr);
- push(qu, year, ussr, usa, uk, fr);
- }
- printf("Количество строк:%d\n", n);
- //char str[256];
- for (int i = 0; i < n; ++i) {
- pop(qu);
- }
- clear(qu);
- return 0;
- }
- void init(queue& qu) { //initializing queue
- qu.size = 0;
- qu.beg = 0;
- qu.end = 0;
- }
- void push(queue& qu, int year, int ussr, int usa, int uk, int fr) {
- Node* pv = new Node; //new field (equals to string in table)
- pv -> year = year; //pushing data
- pv -> ussr = ussr;
- pv -> usa = usa;
- pv -> uk = uk;
- pv -> fr = fr;
- ////////////////organizing queue//////////////////
- if (!qu.size) { //pushing when size = 0
- qu.beg = pv;
- } else if (qu.size > 0) { //pushing when size > 0
- qu.end -> prev = pv;
- }
- qu.end = pv;
- ++qu.size;
- }
- void pop(queue& qu) {
- if (qu.size) { // size > 0
- Node* pv = qu.beg;
- qu.beg = qu.beg -> prev;
- cout << pv -> year << endl; //printing deleted year
- delete pv;
- --qu.size;
- if (!qu.size) { //reiniting in case of deleting every field
- init(qu);
- }
- }
- }
- void clear(queue& qu) {
- if (qu.size) {
- int size = qu.size;
- for (int i = 0; i < size; ++i) {
- Node* pv = qu.beg;
- qu.beg = qu.beg -> prev;
- delete pv;
- --qu.size;
- }
- }
- init(qu);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement