Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cstring>
- using namespace std;
- struct Nod
- {
- char nume[40];
- Nod *st, *dr;
- };
- Nod *head, *tail;
- void Init()
- {
- head = tail = NULL;
- }
- void Creare(char x[])
- {
- head = new Nod;
- strcpy(head -> nume, x);
- head -> dr = NULL;
- head -> st = NULL;
- tail = head;
- }
- void AdInceput(char x[])
- {
- Nod *p;
- p = new Nod;
- strcpy(p -> nume, x);
- p -> dr = head;
- p -> st = NULL;
- head -> st = p;
- head = p;
- }
- void AdSfarsit(char x[])
- {
- Nod *p;
- p = new Nod;
- strcpy(p -> nume, x);
- p -> st = tail;
- p -> dr = NULL;
- tail -> dr = p;
- tail = p;
- }
- void AdDupaNod(Nod *p, char x[])
- {
- Nod *q;
- q = new Nod;
- strcpy(q -> nume, x);
- q -> st = p;
- q -> dr = p -> dr;
- p -> dr = q;
- p -> dr -> st = q;
- }
- void Parc()
- {
- for(Nod *p = head; p != NULL; p = p -> dr)
- cout << p -> nume << " ";
- cout << "\n";
- }
- void StInterior(Nod *p)
- {
- p -> st -> dr = p -> dr;
- p -> dr -> st = p -> st;
- delete p;
- }
- void StInceput()
- {
- Nod *p = head;
- p -> dr -> st = NULL;
- head = head -> dr;
- delete p;
- }
- void StSfarsit()
- {
- Nod *p = tail;
- p -> st -> dr = NULL;
- tail = tail -> st;
- delete p;
- }
- int main()
- {
- ifstream fin("elevin.in");
- int n;
- fin >> n;
- char x[40];
- fin >> x; Creare(x);
- for(int i = 2; i <= n; i++)
- {
- fin >> x;
- AdSfarsit(x);
- }
- Parc();
- for(Nod *i = head; i -> dr != NULL; i = i -> dr)
- for(Nod *j = i -> dr; j != NULL; j = j -> dr)
- if(strcmp(i -> nume, j -> nume) > 0)
- swap(i -> nume, j -> nume);
- Parc();
- fin.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement