#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
struct Node* next;
int data;
}Node;
Node* initlist()
{
Node* L=(Node*)malloc(sizeof(Node));
L->data=0;
L->next=L;
}
void head_insert(Node* L,int data)
{
Node* node = (Node*)malloc(sizeof(Node));
node->data=data;
node->next=L->next;
L->next=node;
}
void tail_insert(Node* L,int data)
{
Node* node=(Node*)malloc(sizeof(Node));
Node* n=(Node*)malloc(sizeof(Node));
n=L;
node->data=data;
while(n->next!=L)
{
n=n->next;
}
n->next=node;
node->next=L;
}
void delete_list(Node* L,int data)
{
Node* pre=(Node*)malloc(sizeof(Node));
Node* now=(Node*)malloc(sizeof(Node));
now=L->next;
while(now->next!=L)
{
if(now->data==data)
{
pre->next=now->next;
free(now);
break;
}
else
{
pre=now;
now=now->next;
}
}
}
void print_list(Node* L)
{
Node* node=(Node*)malloc(sizeof(Node));
node=L->next;
while(node!=L)
{
printf("%d ",node->data);
node=node->next;
}
printf("NULL");
}
int main()
{
Node* l=initlist();
head_insert(l,1);
head_insert(l,2);
head_insert(l,3);
tail_insert(l,4);
tail_insert(l,5);
delete_list(l,4);
print_list(l);
return 0;
}
单循环链表
于 2023-09-02 17:14:35 首次发布