fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct node{
  5. int val;
  6. struct node *next;
  7. }Node;
  8.  
  9. Node *head = NULL;
  10.  
  11. Node *createN(int x){
  12. Node *newnode;
  13. newnode = (Node*)malloc(sizeof(Node));
  14. newnode->val = x;
  15. newnode->next = NULL;
  16. return newnode;
  17. }
  18.  
  19. void initL(int n){
  20. int x,i;
  21. Node *p;
  22. scanf("%d",&x);
  23. head = createN(x);
  24. p = head;
  25. for(i=1;i<n;i++){
  26. scanf("%d",&x);
  27. p->next = createN(x);
  28. p = p->next;
  29. }
  30. }
  31.  
  32. void freeL(){
  33. Node *p;
  34. while(head!=NULL){
  35. p = head->next;
  36. free(head);
  37. head = p;
  38. }
  39. }
  40.  
  41. void printL(){
  42. Node *p = head;
  43. while(p!=NULL){
  44. printf("%d",p->val);
  45. p = p->next;
  46. }
  47. printf("\n");
  48. }
  49.  
  50. void insHead(int x){
  51. Node *p;
  52. p = createN(x);
  53. p->next = head;
  54. head = p;
  55. }
  56.  
  57. void delHead(){
  58. Node *p;
  59. p = head;
  60. head = head->next;
  61. free(p);
  62. }
  63.  
  64. int main(void){
  65. int i,n,x1;
  66. scanf("%d",&n);
  67. initL(n);
  68. printL();
  69. scanf("%d",&x1);
  70. insHead(x1);
  71. printL();
  72. delHead();
  73. printL();
  74. freeL();
  75. return 0;
  76. }
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
Success #stdin #stdout 0s 5308KB
stdin
2
2 4
1
stdout
24
124
24