链表库测试程序

来源:互联网 发布:mac怎么复制文件到nfts 编辑:程序博客网 时间:2024/06/05 05:16

调用动态库:属性-链接器-输入-项目,添加需要调用的动态库。

头文件:Mylinklist.h

#ifndef _MYMLINKLIST_H_
#define _MYMLINKLIST_H_


typedef void LinkList;


typedef struct _tag_LinkListNode
{
struct _tag_LinkListNode* next;
}LinkListNode;

LinkList* LinkList_Create();


void LinkList_Destroy(LinkList* list);


void LinkList_Clear(LinkList* list);


int LinkList_Length(LinkList* list);


int LinkList_Insert(LinkList* list, LinkListNode* node, int pos);


LinkListNode* LinkList_Get(LinkList* list, int pos);


LinkListNode* LinkList_Delete(LinkList* list, int pos);


#endif

测试程序:list.c

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"Mylinklist.h"


 
typedef struct _Teacher
{
LinkListNode node;
int age;
char name[64];
}Teacher;


//void LinkList_Clear(LinkList* list);


//int LinkList_Length(LinkList* list);


//int LinkList_Insert(LinkList* list, LinkListNode* node, int pos);


//LinkListNode* LinkList_Get(LinkList* list, int pos);


//LinkListNode* LinkList_Delete(LinkList* list, int pos);




int  main()
{
int i=0;
LinkList* list=NULL;
list = LinkList_Create();
if (list == NULL)
{
return;
}
Teacher t1, t2, t3, t4, t5;
memset(&t1, 0, sizeof(Teacher));
memset(&t2, 0, sizeof(Teacher));
memset(&t3, 0, sizeof(Teacher));
memset(&t4, 0, sizeof(Teacher));
memset(&t5, 0, sizeof(Teacher));
t1.age = 1;
t2.age = 2;
t3.age = 3;
t4.age = 4;
t5.age = 5;



int ret = LinkList_Insert(list, (LinkListNode*)&t1, LinkList_Length(list));
int ret2 = LinkList_Insert(list, (LinkListNode*)&t2, LinkList_Length(list));
int ret3 = LinkList_Insert(list, (LinkListNode*)&t3, LinkList_Length(list));
int ret4 = LinkList_Insert(list, (LinkListNode*)&t4, LinkList_Length(list));
int ret5 = LinkList_Insert(list, (LinkListNode*)&t5, LinkList_Length(list));


int len = LinkList_Length(list);
for (i = 0; i < LinkList_Length(list); i++)

struct _Teacher *tmp = NULL;


tmp=(struct _Teacher *)LinkList_Get(list, i);
if (tmp != NULL)
{
printf("age:%d\n",tmp->age);
}
}
while (LinkList_Length>0)
{
struct _Teacher *tmp = NULL;
 
tmp=(struct _Teacher *)LinkList_Delete(list, 0);
if (tmp != NULL)
{
printf("age:%d\n", tmp->age);
}
}
LinkList_Destroy(list);
return 0;

}



0 0
原创粉丝点击