链表的实现

    技术2022-06-24  69

    链表是一种非常重要的数据结构,比起数组来虽然操作繁琐,查找效率也不如数组效率高,但在进行插入删除操作时,链表具有数组无法比拟的效率,下面的代码是链表的实现

    #include<stdio.h>#include<stdlib.h>#include<time.h>#define N 100

    typedef struct node{ int item; struct node * next;}*link;

    link NODE(int item, link next){ link p = malloc(sizeof *p);

     p->item = item; p->next = next;

     return p;}

    void init_list(link head){ int i; srand(time(NULL)); for(i = 0; i < N; i++)  head->next = NODE(rand()0, head->next);}

    void delete(link head){ link p = head->next, front = head;  while(p != NULL) {  if(p->item >= 30 && p->item <= 70)  {   front->next = p->next;   free(p);   p = front;  }/*  else  {   front = p;   p = p->next;  }*/  front = p;  p = p->next;  }}

    void show_list(link head){ head = head->next; while(head != NULL) {  printf("%d ", head->item);  head = head->next;  } printf("/n");}

    int main(void){ link head = NODE(-1, NULL); init_list(head); show_list(head); printf("delete:/n"); delete(head); show_list(head); return 0;}


    最新回复(0)