#include<stdio.h>
#include<stdlib.h>
struct student{
int data;
struct student*next;
};
//创建首节点
struct student* increasehead (int data){
struct student*newhead=(struct student*)malloc(sizeof(struct student));
newhead->data=data;
newhead->next=NULL;
return newhead;
}
//新增节点
struct student*increasepoint(int data){
struct student*newpoint=(struct student*)malloc(sizeof(struct student));
newpoint->data=data;
newpoint->next=NULL;
return newpoint;
}
//插入节点---尾插法
void insertbehind (struct student*list,int data1,int data2){
struct student*newpoint=increasepoint(data2);
struct student*p=list;
while(p!=NULL){
if(p->data==data1){
newpoint->next=p->next;
p->next=newpoint;
}
p=p->next;
}
}
//打印链表
void printlist(struct student*list){
struct student*p=list;
while (p!=NULL){
printf("%d",p->data);
p=p->next;
}
}
//查询节点
void search_point(struct student* list,int data){
struct student*p=list;
while (p->next!=NULL){
if(p->data==data){
printf("%d",p->data);
}
p=p->next;
}
}
//删除节点
struct Node* del_list(struct student*list,int n)
{
struct student *del=list->next;//指向首结点
struct student *into=list;//指向首结点
for(;del!=NULL;into=del,del=into->next)
{
if(del->data==n)
{
into->next=del->next;
free(del);
return;
}
}
}
int main()
{
struct student*list=increasehead(0);
insertbehind(list,0,1);
insertbehind(list,1,2);
insertbehind(list,2,3);
printlist(list);
printf("\n");
del_list(list,2);
printlist(list);
return 0;
}
C语言单链表---尾插法
于 2023-10-30 23:08:11 首次发布