fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. class LinkedPatients {
  8. private PatientNode head = null;
  9. private int size = 0;
  10. private int lastArrival = 0;
  11.  
  12. public PatientNode getHead(){
  13. return head;
  14. }
  15.  
  16. public int getSize(){
  17. return size;
  18. }
  19.  
  20. public int getLastArrival(){
  21. return lastArrival;
  22. }
  23.  
  24. public void add(String name, int severity) {
  25. lastArrival++;
  26. Patient patient = new Patient(name, lastArrival, severity);
  27. if(head == null) {
  28. head = new PatientNode(patient, head);
  29. size++;
  30. } else {
  31. PatientNode current, previous;
  32. current = head;
  33. previous = null;
  34. while(current!=null) {
  35. if(current.data.compareSeverity(patient)) {
  36. PatientNode n = new PatientNode(patient,current);
  37. size++;
  38. //n.next = current; // overkill
  39. if(previous==null) {
  40. head = n;
  41. } else {
  42. previous.next = n;
  43. }
  44. return;
  45. }
  46. previous = current;
  47. current = current.next;
  48. }
  49. if(current == null){
  50. previous.next = new PatientNode(patient, null);
  51. size++;
  52. }
  53. }
  54. }
  55. }
  56.  
  57. class PatientNode {
  58. public Patient data;
  59. public PatientNode next;
  60.  
  61. public PatientNode(Patient data, PatientNode next) {
  62. this.data = data;
  63. this.next = next;
  64. }
  65. }
  66.  
  67. class Patient{
  68. private String name;
  69. private int severity;
  70. private int arrival;
  71.  
  72. public Patient(String name, int arrival, int severity){
  73. this.name = name;
  74. this.severity = severity;
  75. this.arrival = arrival;
  76. }
  77.  
  78. public int getSeverity() {
  79. return severity;
  80. }
  81.  
  82. public int getArrival() {
  83. return arrival;
  84. }
  85.  
  86. public boolean compareSeverity(Patient other) {
  87. boolean result = false;
  88. if((other.severity > severity) || (other.severity == severity && other.arrival < arrival)) {
  89. result = true;
  90. }
  91. return result;
  92. }
  93.  
  94. @Override
  95. public String toString(){
  96. return "Patient " + this.name + " arrived at " + this.arrival + " with severity " + this.severity;
  97. }
  98. }
  99.  
  100. /* Name of the class has to be "Main" only if the class is public. */
  101. class Ideone
  102. {
  103. public static void main (String[] args) throws java.lang.Exception
  104. {
  105. caseOne();
  106. System.out.println();
  107. caseTwo();
  108. System.out.println();
  109. caseThree();
  110. System.out.println();
  111. }
  112.  
  113. private static void caseOne(){
  114. LinkedPatients hospi = new LinkedPatients();
  115. hospi.add("Ihor", 1);
  116. hospi.add("Casper", 3);
  117. hospi.add("Clayton", 2);
  118. hospi.add("Zelma", 1);
  119. printHospi(hospi);
  120. }
  121.  
  122. private static void caseTwo(){
  123. LinkedPatients hospi = new LinkedPatients();
  124. hospi.add("Zelma", 1);
  125. hospi.add("Clayton", 2);
  126. hospi.add("Casper", 3);
  127. hospi.add("Ihor", 1);
  128. hospi.add("Edwina", 3);
  129. printHospi(hospi);
  130. }
  131.  
  132. private static void caseThree(){
  133. LinkedPatients hospi = new LinkedPatients();
  134. hospi.add("Zelma", 1);
  135. hospi.add("Clayton", 2);
  136. hospi.add("Ihor", 1);
  137. hospi.add("Edwina", 3);
  138. printHospi(hospi);
  139. }
  140.  
  141. public static void printHospi(LinkedPatients hospi){
  142. System.out.println("Size = " + hospi.getSize());
  143. System.out.println("LastArrival = " + hospi.getLastArrival());
  144. PatientNode current = hospi.getHead();
  145. while(current != null){
  146. System.out.println(current.data);
  147. current = current.next;
  148. }
  149. }
  150. }
Success #stdin #stdout #stderr 0.03s 711168KB
stdin
Standard input is empty
stdout
Size = 4
LastArrival = 4
Patient Casper arrived at 2 with severity 3
Patient Clayton arrived at 3 with severity 2
Patient Ihor arrived at 1 with severity 1
Patient Zelma arrived at 4 with severity 1

Size = 5
LastArrival = 5
Patient Casper arrived at 3 with severity 3
Patient Edwina arrived at 5 with severity 3
Patient Clayton arrived at 2 with severity 2
Patient Zelma arrived at 1 with severity 1
Patient Ihor arrived at 4 with severity 1

Size = 4
LastArrival = 4
Patient Edwina arrived at 4 with severity 3
Patient Clayton arrived at 2 with severity 2
Patient Zelma arrived at 1 with severity 1
Patient Ihor arrived at 3 with severity 1

stderr
Java HotSpot(TM) Client VM warning: No monotonic clock was available - timed services may be adversely affected if the time-of-day clock changes