头插,头删,尾插,尾删,遍历。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Linklist.h"
Linklist* creat_linklist(void)
{
Linklist* head=(Linklist*)malloc(sizeof(Linklist));
if(head==NULL)
{
printf("创建结点失败\n");
}
head->next=NULL;
return head;
}
void insert_linklist(Linklist* head,int num)
{
Linklist* temp=(Linklist*)malloc(sizeof(Linklist));
if(temp==NULL)
{
printf("创建结点失败\n");
return;
}
temp->test.data =num;
temp->next =NULL;
temp->next = head->next;
head->next = temp;
head->test.len++;
return;
}
void show_linklist(Linklist* head)
{
Linklist *p=head;
while(p->next!=NULL)
{
p=p->next;
printf("%d\n",p->test.data);
}
}
void delect_Head(Linklist* head)
{
if(head->next==NULL)
{
printf("链表为空");
return;
}
Linklist* temp=head->next;
head->next=head->next->next;
free(temp);
temp=NULL;
head->test.len--;
}
void insert_tail(Linklist* head,int num)
{
Linklist* temp=(Linklist*)malloc(sizeof(Linklist));
if(temp==NULL)
{
printf("创建结点失败\n");
return;
}
temp->test.data=num;
temp->next=NULL;
if(head->next==NULL)
{
head->next=temp;
}
else
{
Linklist* p=head->next;
while(p->next!=NULL)
{
p=p->next;
}
p->next=temp;
}
head->test.len++;
}
void delect_tail(Linklist* head)
{
if(head->next==NULL)
{
printf("链表为空");
return;
}
Linklist* p=head->next;
if(p->next==NULL)
{
head->next=NULL;
free(p);
p=NULL;
head->test.len--;
return;
}
while(p->next->next!=NULL)
{
p=p->next;
}
free(p->next);
p->next=NULL;
head->test.len--;
}
#include<stdio.h>
#include<stdlib.h>
#include"Linklist.h"
int main()
{
Linklist* head=creat_linklist();
insert_linklist(head,50);
insert_linklist(head,60);
insert_linklist(head,70);
show_linklist(head);
delect_Head(head);
show_linklist(head);
insert_tail(head,80);
insert_tail(head,90);
insert_tail(head,100);
show_linklist(head);
delect_tail(head);
show_linklist(head);
}
#ifndef _LINKLIST_
#define _LINKLIST_
typedef struct linklist
{
union
{
int data;
int len;
}test;
struct linklist* next;
}Linklist;
Linklist* creat_linklist(void);
void insert_linklist(Linklist* head,int num);
void show_linklist(Linklist* p);
void delect_Head(Linklist* head);
void delect_tail(Linklist* head);
void insert_tail(Linklist* head,int num);
#endif