数据分为4部分test.c list.c head.h,Makefile
list.c
#include"head.h"
//创建一个空表
Linklist list_loop_creat()
{
Linklist L;
L=(Linklist )malloc(sizeof(Lnode));//申请空间
L->date=0;
L->next=L;
return L;
}
//使用头插法进行数据的插入
int list_loop_inset(Linklist L,int value)
{
Linklist p;
p=(Linklist )malloc(sizeof(Lnode));
if(p==NULL)
{
printf("apply is fail\n");
return 1;
}
p->date=value;
p->next=L->next;
L->next=p;
return 0;
}
//删除尾部
int list_loop_del_tail(Linklist L)
{
Linklist p,s;
p=L;
while(p->next->next!=L)
{
p=p->next;
}
s=p->next;
free(s);
s=NULL;
p->next=L;
return 0;
}
//遍历
void list_loop_show(Linklist L)
{
Linklist p;
p=L;
while(p->next!=L)
{
p=p->next;
printf("%d ",p->date);
}
printf("\n");
}
test,.c
#include"head.h"
int main(int argc ,char *argv[])
{
Linklist L;
L=list_loop_creat();
list_loop_inset(L,10);
list_loop_inset(L,20);
list_loop_inset(L,30);
list_loop_inset(L,40);
list_loop_inset(L,50);
list_loop_show(L);
list_loop_del_tail(L);
list_loop_show(L);
return 0;
}
head.h
#ifndef __HEAD_H
#define __HEAD_H
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct list{
int date;
struct list *next;
}Lnode,*Linklist ;
int list_loop_inset(Linklist L,int value);
void list_loop_show(Linklist L);
Linklist list_loop_creat();
int list_loop_del_tail(Linklist L);
#endif
Makefile
CC=gcc
CFLAGS=-c -O -Wall
obj=list.o test.o
xiangjie:$(obj)
$(CC) -o $@ $^
%*.o:%*.c
$(CC) $(CFLAGS) -o $@ $<
.PHONY:clean
clean:
rm -rf *.o xiangjie