Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pociagi;
- import java.util.Scanner;
- class Wagon{
- Wagon next,prev;
- String id;
- Wagon(String nid)
- {
- id = nid;
- next = prev = null;
- }
- }
- class Train{
- Train next;
- String id;
- Wagon first,last;
- boolean k;
- Train(String nid)
- {
- id = nid;
- next = null;
- first = last = null;
- k = true;
- }
- public void Reverse()
- {
- if(k == false)
- k = true;
- else
- k = false;
- }
- public void Display()
- {
- if(k == true){
- Wagon A = first;
- do
- {
- System.out.print(A.id + " ");
- A = A.next;
- }while(A != null);
- }
- else
- {
- Wagon A = last;
- do
- {
- System.out.print(A.id + " ");
- A = A.prev;
- }while(A != null);
- }
- System.out.print("\n");
- }
- public void InsertFirst(String TName,String WName)
- {
- Wagon A = new Wagon(WName);
- A.next = first;
- first.prev = A;
- A.prev = null;
- first = A;
- }
- public void InsertLast(String TName,String WName)
- {
- Wagon A = new Wagon(WName);
- last.next = A;
- A.prev = last;
- A.next = null;
- last = A;
- }
- }
- class Lista{
- Train First;
- Lista()
- {
- First = null;
- }
- public void New(String TName, String WName)
- {
- Train New = new Train(TName);
- New.first = new Wagon(WName);
- New.last = New.first;
- Train tmp = First;
- First = New;
- First.next = tmp;
- }
- public void Display(String TName)
- {
- Train A = Search(TName);
- if(A != null)
- {
- System.out.print(TName + " : ");
- A.Display();
- }
- }
- public void DelTrain(String TName)
- {
- Train A = First;
- if(A.id.compareTo(TName) == 0)
- First = First.next;
- else
- do{
- if(A.next.id.compareTo(TName) == 0)
- {
- A.next = A.next.next;
- break;
- }
- A = A.next;
- }while(A != null);
- }
- public void Union(String TName1, String TName2)
- {
- Train A = Search(TName1), B = Search(TName2);
- if(A != null && B != null)
- {
- A.last.next = B.first;
- B.first.prev = A.last;
- A.last = B.first;
- DelTrain(TName2);
- }
- }
- public void DelFirst(String TName1, String TName2)
- {
- Train A = Search(TName1);
- if(A != null)
- if(A.k == true)
- DelFirst_(A,TName1,TName2);
- else
- DelLast_(A,TName1,TName2);
- }
- public void DelLast(String TName1, String TName2)
- {
- Train A = Search(TName1);
- if(A != null)
- if(A.k == true)
- DelLast_(A,TName1,TName2);
- else
- DelFirst_(A,TName1,TName2);
- }
- public void DelFirst_(Train A, String TName1, String TName2)
- {
- Wagon W = A.first;
- if(A.first.next == null)
- DelTrain(A.id);
- else
- {
- A.first = A.first.next;
- A.first.prev = null;
- }
- New(TName2,W.id);
- }
- public void DelLast_(Train A, String TName1, String TName2)
- {
- Wagon W = A.last;
- if(A.last.prev == null)
- DelTrain(A.id);
- else
- {
- A.last = A.last.prev;
- A.last.next = null;
- }
- New(TName2,W.id);
- }
- public void Reverse(String TName)
- {
- Train A = Search(TName);
- if(A != null)
- A.Reverse();
- }
- public void InsertFirst(String TName, String WName)
- {
- Train A = Search(TName);
- if(A != null)
- if(A.k == true)
- A.InsertFirst(TName,WName);
- else
- A.InsertLast(TName,WName);
- }
- public void InsertLast(String TName, String WName)
- {
- Train A = Search(TName);
- if(A != null)
- if(A.k == false)
- A.InsertLast(TName,WName);
- else
- A.InsertFirst(TName, WName);
- }
- public Train Search(String TName)
- {
- Train A = First;
- if(A != null)
- do{
- if( A.id.compareTo(TName) == 0 )
- return A;
- A = A.next;
- }while(A != null);
- return null;
- }
- }
- public class Source {
- public static Scanner input = new Scanner (System.in);
- public static void main(String[] args) {
- int z = input.nextInt();
- Lista A = new Lista();
- A.New("T1", "W1");
- A.InsertLast("T1","W2");
- A.Display( "T1" );
- A.InsertFirst( "T1", "W0" );
- A.Display( "T1" );
- A.Reverse("T1");
- A.Display("T1");
- A.InsertFirst("T1", "Z1");
- A.Display("T1");
- A.Reverse("T1");
- A.Display("T1");
- /*
- A.DelFirst("T1", "T2");
- A.Display("T1");
- A.Display("T2");
- A.DelLast("T1", "T3");
- A.Display("T1");
- A.Display("T3");
- */
- /*
- A.New("T1", "W1");
- A.InsertLast("T1","W2");
- A.Display( "T1" );
- A.InsertFirst( "T1", "W0" );
- A.Display( "T1" );
- A.DelFirst("T1", "T2");
- A.Display("T1");
- A.Display("T2");
- A.DelLast("T1", "T3");
- A.Display("T1");
- A.Display("T3");
- System.out.println("--------");
- A.InsertFirst("T3","h1");
- A.Display("T3");
- A.InsertLast("T3","h2");
- A.Display("T3");
- A.InsertFirst("T3","j1");
- A.Display("T3");
- A.Reverse("T3");
- A.Display("T3");
- A.Union("T1","T3");
- A.Display("T1");
- A.Reverse("T1");
- A.Display("T1");
- */ /*
- for(int j = 0 ; j < z ; j++)
- {
- int n = input.nextInt();
- String polecenie = input.nextLine();
- for(int k = 0 ; k < n ; k++)
- {
- }
- }
- */
- }
- }
Add Comment
Please, Sign In to add comment