1.linklist.c
#include <stdio.h>
#include <stdlib.h>
#include "./linklist.h"
Linklist* creat_linklist(void){
Linklist *head=(Linklist*)malloc(sizeof(Linklist));
if(NULL == head){
printf("头结点申请空间失败,链表创建失败\n");
return NULL;
}
head->data.len=0;
head->next=NULL;
return head;
}
void insert_head(Linklist* head, int num){
Linklist *temp=(Linklist*)malloc(sizeof(Linklist));
if(NULL==temp)
printf("申请空间失败,插入错误\n");
temp->data.text = num;
temp->next = NULL;
temp->next = head->next;
head->next = temp;
head->data.len++;
return;
}
void insert_tail(Linklist *head,int num){
Linklist *temp=(Linklist*)malloc(sizeof(Linklist));
if(NULL==temp)
printf("申请空间失败,插入错误");
temp->data.text=num;
temp->next=NULL;
Linklist *p=head;
while(p->next!=NULL)
p = p->next;
temp->next = p->next;
p->next = temp;
head->data.len++;
return;
}
void show_linklist(Linklist *head){
Linklist *p=head;
while(p->next!=NULL){
p = p->next;
printf("%d\t",p->data.text);
}
putchar(10);
return;
}
void delete_head(Linklist *head){
Linklist *temp = head->next;
if(temp==NULL)
return;
head->next = temp->next;
free(temp);
head->data.len--;
return;
}
void delete_tail(Linklist *head){
Linklist *p=head;
if(p->next==NULL)
return;
while(p->next->next!=NULL)
p = p->next;
free(p->next);
p->next = NULL;
head->data.len--;
return;
}
void insert(Linklist *head,int index,int num){
if(!(index>0&&index<=head->data.len))
return;
Linklist *temp = (Linklist*)malloc(sizeof(Linklist));
temp->data.len=num;
temp->next = NULL;
Linklist *p=head;
for(int i=1;i<index;i++)
p = p->next;
temp->next = p->next;
p->next = temp;
head->data.len++;
return;
}
void delete(Linklist *head,int index){
if(!(index>0&&index<=head->data.len))
return;
Linklist *p=head;
for(int i=1;i<index;i++)
p = p->next;
free(p->next);
p->next = p->next->next;
head->data.len--;
return;
}
void search(Linklist *head,int index){
if(!(index>0&&index<=head->data.len))
return;
Linklist *p=head;
for(int i=0;i<index;i++)
p = p->next;
printf("第%d位为%d\n",index,p->data.text);
return;
}
2.main.c
3.lianbiao.h