Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. import Foundation
  2. class Node{
  3. let data: String
  4. private var next: Node?
  5.  
  6. init (data: String){
  7. self.data = data
  8. }
  9. }
  10.  
  11. class LinkedList{
  12. var head: Node
  13.  
  14. init (n: Node){
  15. head = n
  16. }
  17.  
  18. func addNode(n: Node){
  19. addNodeH(n, next: head)
  20. }
  21.  
  22. func addNodeH(n: Node, next: Node?){
  23. if next!.next == nil{
  24. next!.next = n
  25. } else {
  26. addNodeH(n, next: next!.next)
  27. }
  28. }
  29.  
  30.  
  31. func addNodeOrdered(n: Node){
  32. if head.data > n.data{
  33. n.next = head
  34. head = n
  35. } else{
  36. addNodeOrderedHelper(n, next: head)
  37. }
  38. }
  39.  
  40. func addNodeOrderedHelper(n: Node, next: Node?){
  41. if next!.next == nil{
  42. next!.next = n
  43. } else if (n.data < next!.next!.data){
  44. n.next = next!.next
  45. next!.next = n
  46. }
  47. else{
  48. addNodeOrderedHelper(n, next: next!.next)
  49. }
  50. }
  51.  
  52. func printList()-> String{
  53. return printListHelper(head)
  54. }
  55.  
  56. func printListHelper(n: Node?)-> String{
  57.  
  58. if(n == nil){
  59. return ""
  60. } else {
  61. return n!.data + " " + printListHelper(n!.next)
  62. }
  63. }
  64. }
  65.  
  66. var ll = LinkedList(n: Node(data:"zz"))
  67. ll.addNodeOrdered(Node (data: "zo"))
  68. ll.addNodeOrdered(Node (data: "jock"))
  69. ll.addNodeOrdered(Node (data: "abs"))
  70. ll.addNodeOrdered(Node (data: "zo"))
  71. ll.addNodeOrdered(Node (data: "jock"))
  72. ll.addNodeOrdered(Node (data: "abs"))
  73. ll.addNodeOrdered(Node (data: "zo"))
  74. ll.addNodeOrdered(Node (data: "jock"))
  75. ll.addNodeOrdered(Node (data: "abs"))
  76. print(ll.printList())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement