⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 struct.cpp

📁 vc写的源程序,是关于游戏类的程序。调用了系统的很多API
💻 CPP
字号:
#include "graphics.h"

// 建立一个新链表
LIST *create_list()
{
	LIST *list = new LIST;
	put_message(list == NULL, "错误,没有足够的内存。");
	list->first = list->last = list->entry = NULL;
	list->count = 0;
	return list;
}

// 向链表中添加一个新节点
void add_point(LIST *list, void *data)
{
	int a = 1;
	list->entry = new LIST_POINT;
	list->entry->data = data;
	if (list->first == NULL)
	{
		list->entry->next = list->entry->prev = NULL;
		list->first = list->last = list->entry;
	}
	else
	{
		list->last->next = list->entry;
		list->entry->prev = list->last;
		list->entry->next = NULL;
		list->last = list->entry;
	}
	list->count++;
}

// 释放链表
void free_list(LIST **l)
{
	LIST *list = *l;
	if (list != NULL)
	{
		LIST_POINT *temp, *p;
		while(list->first != NULL)
		{
			temp = list->first;
			p = temp->next;
			if (temp->data != NULL)
				free(temp->data);
			free(temp);
			list->first = p;
		}
		list->first = list->last = NULL;
		free(list);
		*l = NULL;
	}
}

// 将指向当前节点的指针移到链表最前面
void seek_to_first(LIST *list)
{
	list->entry = list->first;
}

// 将指向当前节点的指针移到链表最后面
void seek_to_last(LIST *list)
{
	list->entry = list->last;
}

// 将指向当前节点的指针向前移一个节点
void seek_to_prev(LIST *list)
{
	list->entry = list->entry->prev;
}

// 将指向当前节点的指针向后移一个节点
void seek_to_next(LIST *list)
{
	list->entry = list->entry->next;
}

// 获取当前数据
void *get_data(LIST *list)
{
	if (list->entry != NULL)
		return list->entry->data;
	return NULL;
}

// 删除一个节点
void delete_point(LIST *list, LIST_POINT *p)
{
	if (p == list->first)
	{
		list->first = list->first->next;
		list->first->prev = NULL;
		if (p->data != NULL)
			delete p->data;
		delete p;
		list->entry = list->first;
	}
	else if (p == list->last)
	{
		list->last = list->last->prev;
		list->last->next = NULL;
		if (p->data != NULL)
			delete p->data;
		delete p;
		list->entry = NULL;
	}
	else
	{
		LIST_POINT *v, *n;
		v = p->prev;
		n = p->next;
		v->next = n;
		n->prev = v;
		if (p->data != NULL)
			delete p->data;
		delete p;
		list->entry = n;
	}
	list->count--;
}

⌨️ 快捷键说明

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