star.h头文件代码 包括函数的声明还有链表的接口
#pragma once
#ifndef _STAR_H_
#define _STAR_H_
#define MAX_STAR 150
#define SCREEN_WIDTH 800
#define SCREEN_HEIGHT 600
#define MAX_STEP 7
#define MAX_RADIUS 3
#define BOTTOM_MARGIN 100
// 星星状态
enum STATUS {
STOP = 0,
UP,
DOWN,
LEFT,
RIGHT,
RANDOM,
ALL_STATUS
};
//星星的结构体
typedef struct {
int x; //星星的 x 坐标
int y; //星星的 y 坐标
enum STATUS stat; //状态
unsigned radius; //星星的半径
int step; //每次跳跃的间隔
int color; //星星的颜色
}STAR;
//引入链表
typedef struct _Linknode {
STAR star;
struct _Linknode* next; //上一个节点的指针域
struct _Linknode* prev; //下一个节点的指针域
}DLinklist, DLinknode;
//链表的接口
bool InitList(DLinklist* &list);
bool ListInsert_back(DLinklist* &list,DLinknode* &node, STAR &star);
bool Delete_Linknode(DLinknode* &tmp);
#endif // !_STAR_H_
starlink.cpp 里面是链表的实现函数 另外用一个CPP文件
#include <iostream>
#include "star.h"
//1.初始化一个空的双向链表
bool InitList(DLinklist*