单链表建立 插入 删除

来源:互联网 发布:大数据风控 汽车金融 编辑:程序博客网 时间:2024/05/24 07:31

建立单链表并输入5个数

#include <stdio.h>#include <stdlib.h>typedef struct node{     int data; struct node *next;}st;main(){int i;    st *head=NULL; //结构体头指针     st *tail=NULL;   //结构体尾指针 st *p=NULL;      //结构体结点 for (i=0;i<5;i++){       p=(st*)malloc(sizeof(st));//给p分配内存空间        scanf("%d",&p->data);       p->next=NULL;       if (i==0)        {        head = p;        }       else       {           tail->next = p;       }       tail = p;    }    p=head; //p指向头,从头开始输出    while (p)    {    printf("%d",p->data);    p=p->next;    }    } 
删除data值为3的结点

      p从头开始遍历链表,q记录p结点的前一个结点,如果找到data为3的结点,则将前一个q结点的next指向为·3结点的后一个结点。

  while (p)   {     if (p->data == 3)       {           q->next=p->next;           break;       } q=p;      p=p->next;   }        p=head;        while (p)    {    printf("%d",p->data);    p=p->next;    } 

插入 :

 假设要在p和q之间插入s结点

   s->next = q ;   p->next = s;


删除:

假设p s q 是3个连着的结点,要删除s结点

   p->next = q;

   free(s); //释放s结点


0 0
原创粉丝点击