Advertisement
Guest User

Untitled

a guest
Apr 21st, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. struct node
  5. {
  6. int info;
  7. struct node *adr_urm;
  8. };
  9. struct node *primul=NULL;
  10. struct node* createNode()
  11. {
  12. struct node *temp;
  13. temp=(struct node*)malloc(sizeof(struct node));
  14. return temp;
  15. };
  16. void inserareInceput(int n)
  17. {
  18. struct node *temp;
  19. temp=createNode();
  20. temp->info=n;
  21. if(primul==NULL)
  22. {
  23. primul=temp;
  24. }
  25. else
  26. {
  27. temp->adr_urm=primul;
  28. primul=temp;
  29. }
  30. }
  31. void InserareSfarsit(int n)
  32. {
  33. struct node *temp;
  34. struct node *traverse;
  35. temp=createNode();
  36. temp->info=n;
  37. if(primul==NULL)
  38. {
  39. primul=temp;
  40. }
  41. else
  42. {
  43. traverse=primul;
  44. while(traverse->adr_urm!=NULL)
  45. {
  46. traverse=traverse->adr_urm;
  47. }
  48. traverse->adr_urm=temp;
  49. }
  50. }
  51. void inserareOriunde(int data,int n)
  52. {
  53. int i;
  54. struct node *temp;
  55. temp=createNode();
  56. temp->info=data;
  57. if(n==1)
  58. {
  59. temp->adr_urm=primul;
  60. primul=temp;
  61. }
  62. else
  63. {
  64. struct node *traverse;
  65. traverse=primul;
  66. for(i=1;i<n-1;i++)
  67. {
  68. traverse=traverse->adr_urm;
  69. }
  70. temp->adr_urm=traverse->adr_urm;
  71. traverse->adr_urm=temp;
  72. }
  73. }
  74. void StergereInceput()
  75. {
  76. struct node *temp;
  77. temp=createNode();
  78. if(primul==NULL)
  79. {
  80. printf("PROBLEMA");
  81. }
  82. else
  83. {
  84. temp=primul;
  85. primul=temp->adr_urm;
  86. free(temp);
  87. }
  88. }
  89. void StergereSfarsit()
  90. {
  91. struct node *traverse;
  92. struct node *prev;
  93. prev=createNode();
  94. if(primul==NULL)
  95. {
  96. printf("PROBLEMA");
  97. }
  98. else
  99. {
  100. traverse=primul;
  101. while(traverse->adr_urm!=NULL)
  102. {
  103. prev=traverse;
  104. traverse=traverse->adr_urm;
  105. }
  106. free(traverse);
  107. prev->adr_urm=NULL;
  108. }
  109. }
  110. void StergereOriunde(int n)
  111. {
  112. int i;
  113. struct node *temp;
  114. temp=createNode();
  115. if(n==1)
  116. {
  117. primul=temp->adr_urm;
  118. primul=temp;
  119. free(temp);
  120. }
  121. else
  122. {
  123. temp=primul;
  124. for(i=1;i<n-1;i++)
  125. {
  126. temp=temp->adr_urm;
  127. }
  128. struct node *temp2;
  129. temp2=createNode();
  130. temp2=temp->adr_urm;
  131. temp->adr_urm=temp2->adr_urm;
  132. free(temp2);
  133. }
  134. }
  135. void show()
  136. {
  137. struct node *traverse;
  138. traverse=primul;
  139. while(traverse!=NULL)
  140. {
  141. printf("%d ",traverse->info);
  142. traverse=traverse->adr_urm;
  143. }
  144. }
  145. int main()
  146. {
  147. InserareSfarsit(43);
  148. InserareSfarsit(45);
  149. InserareSfarsit(5);
  150. InserareSfarsit(43);
  151. InserareSfarsit(45);
  152. InserareSfarsit(5);
  153. //inserareOriunde(5,4);
  154. StergereOriunde(3);
  155. //StergereInceput();
  156. //StergereSfarsit();
  157. show();
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement