linker.cpp

来自「文件fat系统的实现在内存中的一种模拟方式」· C++ 代码 · 共 89 行

CPP
89
字号
#include "precomp.h"

int initList(PNODE* pListHead)
{
	//
	//创建一个头结点空间,并赋值为0
	//
	if ((*pListHead = (PNODE)malloc(sizeof(NODE))) == NULL)
	{
		return ALLOC_FAIL;
	}

	(*pListHead)->iValue = 0;
	(*pListHead)->pNext = NULL;

	return SUCCESS;
}

//
//在指定的头结点的链表末尾插入一个新的结点
//
int insert(PNODE pListHead,int iValue)
{
	PNODE	pNode;
	PNODE	pLastNode = pListHead;

	if ((pNode = (PNODE)malloc(sizeof(NODE))) == NULL)
	{
		return ALLOC_FAIL;
	}

	pNode->iValue = iValue;
	pNode->pNext = NULL;
	
	while(1)
	{
		if (pLastNode->pNext == NULL)
		{
			pLastNode->pNext = pNode;
			break;
		}

		pLastNode = pLastNode->pNext;
	}
	
	return SUCCESS;
}

//
//删除整个链表空间,程序结束必做
//
int deleteList(PNODE pListHead)
{
	PNODE pReadyToDelete = pListHead;

	while(pListHead == NULL)
	{
		pListHead = pListHead->pNext;

		free(pReadyToDelete);

		pReadyToDelete = pListHead;
	}

	return SUCCESS;
}

void printList(PNODE pListHead)
{
	PNODE pNode = pListHead;

	if (pNode->pNext == NULL)
	{
		printf("This LinkerList has no NODE except Header!\n");
		return;
	}

	printf("Blocks used by this file : ");
	
	pNode = pNode->pNext;
	while(pNode != NULL)
	{
		printf("%d->",pNode->iValue);
		pNode = pNode->pNext;
	}
	printf("NULL\n");

	return;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?