Advertisement
J00ker

Untitled

Jun 11th, 2015
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.78 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstring>
  4.  
  5. using namespace std;
  6.  
  7. struct Nod
  8. {
  9.     char nume[40];
  10.     Nod *st, *dr;
  11. };
  12.  
  13. Nod *head, *tail;
  14.  
  15. void Init()
  16. {
  17.     head = tail = NULL;
  18. }
  19.  
  20. void Creare(char x[])
  21. {
  22.     head = new Nod;
  23.     strcpy(head -> nume, x);
  24.     head -> dr = NULL;
  25.     head -> st = NULL;
  26.     tail = head;
  27. }
  28.  
  29. void AdInceput(char x[])
  30. {
  31.     Nod *p;
  32.     p = new Nod;
  33.     strcpy(p -> nume, x);
  34.     p -> dr = head;
  35.     p -> st = NULL;
  36.     head -> st = p;
  37.     head = p;
  38. }
  39.  
  40. void AdSfarsit(char x[])
  41. {
  42.     Nod *p;
  43.     p = new Nod;
  44.     strcpy(p -> nume, x);
  45.     p -> st = tail;
  46.     p -> dr = NULL;
  47.     tail -> dr = p;
  48.     tail = p;
  49. }
  50.  
  51. void AdDupaNod(Nod *p, char x[])
  52. {
  53.     Nod *q;
  54.     q = new Nod;
  55.     strcpy(q -> nume, x);
  56.     q -> st = p;
  57.     q -> dr = p -> dr;
  58.     p -> dr = q;
  59.     p -> dr -> st = q;
  60. }
  61.  
  62. void Parc()
  63. {
  64.     for(Nod *p = head; p != NULL; p = p -> dr)
  65.         cout << p -> nume << " ";
  66.     cout << "\n";
  67. }
  68.  
  69. void StInterior(Nod *p)
  70. {
  71.     p -> st -> dr = p -> dr;
  72.     p -> dr -> st = p -> st;
  73.     delete p;
  74. }
  75.  
  76. void StInceput()
  77. {
  78.     Nod *p = head;
  79.     p -> dr -> st = NULL;
  80.     head = head -> dr;
  81.     delete p;
  82. }
  83.  
  84. void StSfarsit()
  85. {
  86.     Nod *p = tail;
  87.     p -> st -> dr = NULL;
  88.     tail = tail -> st;
  89.     delete p;
  90. }
  91.  
  92.  
  93. int main()
  94. {
  95.     ifstream fin("elevin.in");
  96.  
  97.     int n;
  98.     fin >> n;
  99.     char x[40];
  100.  
  101.     fin >> x; Creare(x);
  102.     for(int i = 2; i <= n; i++)
  103.     {
  104.         fin >> x;
  105.         AdSfarsit(x);
  106.     }
  107.     Parc();
  108.  
  109.     for(Nod *i = head; i -> dr != NULL; i = i -> dr)
  110.         for(Nod *j = i -> dr; j != NULL; j = j -> dr)
  111.             if(strcmp(i -> nume, j -> nume) > 0)
  112.                 swap(i -> nume, j -> nume);
  113.     Parc();
  114.  
  115.     fin.close();
  116.     return 0;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement