最近写了个用于交换机学习老化的软件,正好用到很多数据结构Mark下,先来一发单链表,头插法
#include
#include
typedef struct Node{
int Data;
struct Node *next;
}LNode,*Linklist;
Linklist Create_Linklist(){
Linklist Head;
Head = (Linklist)malloc(sizeof(LNode));
if(Head){
Head->next = NULL;
}
return Head;
}
//头插法
void Insert_Linklist(Linklist Head,int Data){
Linklist temp = (Linklist)malloc(sizeof(LNode));
temp->Data = Data;
temp->next = Head->next;
Head->next = temp;
}
void Foreach_LinkList(Linklist Head){
Linklist temp = Head->next;
while(temp){
printf("%d\n",temp->Data);
temp = temp->next;
}
}
void Delete_LinkList(Linklist Head,int num){
Linklist previous_temp = Head;
Linklist temp = Head->next;
while(temp){
if(temp->Data==num){
previous_temp->next = temp->next;
free(temp);
return;
}
temp = temp->next;
previous_temp = previous_temp->next;
}
printf("Wrong Data\n");
}
int main(){
Linklist Head_Node = Create_Linklist();
Insert_Linklist(Head_Node,3);
Insert_Linklist(Head_Node,4);
Insert_Linklist(Head_Node,5);
Foreach_LinkList(Head_Node);
Delete_LinkList(Head_Node,4);
Foreach_LinkList(Head_Node);
}