📄 link.h
字号:
#ifndef NODE_CLASS
#define NODE_CLASS
struct struct1 //学生信息结构体
{
CString num;
CString name;
CString sex;
int score[3]; //分别是语文、数学、外语成绩
};
//节点类声明部分
class Node : CObject
{
DECLARE_SERIAL(Node)
public:
Node* next; //指向后继节点的指针
struct1 data; //数据域
Node();
Node(struct1* item,Node * ptrnext); //构造函数
void InsertAfter(Node *p); //在本节点之后插入节点P
Node * DeleteAfter(void); //删除本节点之后的后继节点,并且返回其地址
Node * NextNode(void) const; // 获取后继节点的地址
int Sum(Node *p);
void Serialize(CArchive& ar);
};
//链表类声明部分
class LinkedList
{
private:
//数据成员;
//表头和表尾指针;
Node *front,*rear;
//记录当前遍历位置的指针,由插入和删除操作更新
Node *prevPtr,*currPtr,*nextPtr;
//表中元素个数
int size;
//生成新节点,数据域为item,指针域为ptrNext
Node *GetNode(struct1* item,Node *ptrNext);
//释放节点
//void FreeNode(Node *p);
public:
CObArray obArray;
//构造函数
LinkedList(void);
//析构函数
~LinkedList(void);
//在表尾添加一个数据域为item的节点
void InsertRear(struct1* item);
void Delete(CString NAME); //删除指定的学生的信息
Node* SearchByNo(CString NUM); //按学号都学生信息进行检索
Node* SearchByName(CString NAME); //按姓名都学生信息进行检索
int Paiming(Node* &nextPtr); //排名
float Average(int i); //统计各科平均分
float Passrate(int i); //统计及格率
int ListSize(void);
int ListEmpty(void);
Node * GetFront();
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -