闲来没事,写写代码
闲来没事,写写代码

导航

 
linklist.h




#ifndef LINKLIST_H
#define LINKLIST_H


#include<stdlib.h>
#include<stdio.h>
#include<stdio.h>
;

typedef struct LINKNODE {
	struct LINKNODE* next;
}LinkNode;

typedef void(*PRINTNODE)(LinkNode*);

typedef struct LINKLIST {
	LinkNode head;
	int size;
}LinkList;

//初始化链表
LinkList* Init_LinkList();
//插入
void Insert_LinkList(LinkList* list,int pos,LinkNode* date);
//删除
void Remove_LinkList(LinkList list ,int pos);
//查找
int Find_LinkList(LinkList* list,LinkNode *date);
//返回链表大小
int Size_LinkList(LinkList* list);
//打印链表
void Print_LinkList(LinkList *list,PRINTNODE print);
//释放链表内存
void FreeSpace_LinkList(LinkList* list);


#endif

  

 

//linklist.c




#include"linklist.h"

//初始化链表
LinkList* Init_LinkList() {
	LinkList* list = (LinkList*)malloc(sizeof(LinkList));
	list->head.next = NULL;
	list->size = 0;
	return list;
}
//插入
void Insert_LinkList(LinkList* list, int pos, LinkNode* date) {
	if (list == NULL) {
		return;
	}
	if (date == NULL) {
		return;
	}
	if (pos < 0 || list->size < pos) {
		pos = list->size;
		
	}
	//查找插入位置
	LinkNode* pCurrent =&( list->head);
	for (int i = 0; i < pos; i++) {
		pCurrent = pCurrent->next;

	}
	date->next = pCurrent->next;
	pCurrent->next = date;
	list->size++;
	return;
}
//删除
void Remove_LinkList(LinkList list, int pos) {
		return;
}
//查找
int Find_LinkList(LinkList * list, LinkNode * date) {
		return 0;
}
//返回链表大小
int Size_LinkList(LinkList* list) {
	return 0;
}
//打印链表
void Print_LinkList(LinkList* list, PRINTNODE print)
{
	if (list == NULL) {
		return;
	}
	LinkNode* pCurrent = list->head.next;
	while (pCurrent != NULL) {
		print(pCurrent);
		pCurrent = pCurrent->next;
	}
	return;
}
//释放链表内存
void FreeSpace_LinkList(LinkList* list) {
	if (list == NULL) { return; }
	free(list);

	return;
}

  

 

 

 

 

//main.c







#include"linklist.h"

#include"linklist.h"

typedef struct PERSION {
	LinkNode node;
	char name[64];

	int age;
}Persion;

void MyPrint(LinkNode* date) {
	Persion* p = (Persion*)date;
	printf("name : %s  Age: %d\n",p->name,p->age);
}
int main(void) {
	LinkList* list = Init_LinkList();
	Persion p1, p2, p3, p4, p5;
	strcpy(p1.name, "p1");
	strcpy(p2.name, "p2");
	strcpy(p3.name, "p3");
	strcpy(p4.name, "p4");
	strcpy(p5.name, "p5");
	p1.age = 1;
	p2.age = 2;
	p3.age = 3;
	p4.age = 4;
	p5.age = 5;
	//将节点插入链表
	Insert_LinkList(list, 0, (LinkNode*)&p1);
	Insert_LinkList(list, 0, (LinkNode*)&p2);
	Insert_LinkList(list, 0, (LinkNode*)&p3);
	Insert_LinkList(list, 0, (LinkNode*)&p4);
	Insert_LinkList(list, 0, (LinkNode*)&p5);
	//打印
	Print_LinkList(list, MyPrint);
	//释放链表内存
	free(list);
	return 0;
}

  

 

 

 

posted on 2022-03-16 09:16  闲来没事,写写代码  阅读(31)  评论(0)    收藏  举报