#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int data;
struct Node* next;
}Node;
Node* inintLine(){
Node* l=(Node*)malloc(sizeof(Node*));
l->data=0;
l->next=NULL;
return l;
}
//头插法
void headInsert(Node* l,int data){
Node* node=(Node*)malloc(sizeof(Node*));
node->data=data;
node->next=l->next;
l->next=node;
l->data++;
}
//尾插法
void tailInsert(Node* l,int data){
Node* node=(Node*)malloc(sizeof(Node*));
Node* head=l;
node->data=data;
node->next=NULL;
l=l->next;
while (l->next)
{
l=l->next;
}
l->next=node;
head->data++;//l已经改变,所以需要一个值来保存头结点的地址.
}
//删除
void delete(Node* L, int data) {
Node* preNode = L;
Node* node = L -> next;
while(node){
if(node -> data == data) {
preNode -> next = node->next;
free(node);
L -> data --;
break;
}
preNode = node;
node = node -> next;
}
}
//打印链表
void printfChart(Node* l){
l=l->next;
while (l)
{
printf("%d,",l->data);
l=l->next;
}
}
int main(){
Node* list=inintLine();
headInsert(list,1);
headInsert(list,2);
headInsert(list,15);
headInsert(list,19);
tailInsert(list,16);
printf("打印链表\n");
printfChart(list);
delete(list,1);
printf("打印链表\n");
printfChart(list);
return 0;
}
数据结构和算法:01链表(c语言)
最新推荐文章于 2024-09-21 17:29:25 发布