一、学习总结

1.1查找的四位导图

1.2查找学习体会

查找包括三大块:线性表查找,树表查找,哈希查找。算法也多用递归。

map是STL的一个关联容器,它提供一对一(第一个称为关键字,第二个称为关键字的值)的数据处理能力。例如:map<int,string>student,学生姓名与学号之间就存在一一映射关系。

2.PTA实验作业

2.1题目一:6-2 是否二叉搜索树

2.2设计思路

2.3代码截图

2.4PTA提交说明

2未解决,3只有一个节点是二叉树,4空树是二叉树。

题目二:7-1 QQ帐户的申请与登陆

设计思路

 

代码截图

PTA提交列表说明

没有用c++出现编译错误

 题目三:7-2 航空公司VIP客户查询

 伪代码

代码截图

PTA提交列表说明

0航班记录中可能存在两次或两次以上乘客记录,要把每条记录都相加,每次飞行里程小于500都算作500;

1,2未解决。

三、截图本周题目集的PTA最后排名

3.1.PTA排名

3.2我的总分

2分

四、阅读代码

/*
将结点插入到红黑树中
root 红黑树的根结点
node 插入的结点
*/
template <class T>
void RBTree<T>::insert(RBTNode<T>* &root, RBTNode<T>* node)
{
RBTNode<T> *y = NULL;
RBTNode<T> *x = root;

// 1. 将红黑树当作一颗二叉查找树,将节点添加到二叉查找树中。
while (x != NULL)
{
y = x;
if (node->key < x->key)
x = x->left;
else
x = x->right;
}

node->parent = y;
if (y!=NULL)
{
if (node->key < y->key)
y->left = node;
else
y->right = node;
}
else
root = node;

// 2. 设置节点的颜色为红色
node->color = RED;

// 3. 将它重新修正为一颗二叉查找树
insertFixUp(root, node);
}

/*
将结点(key为节点键值)插入到红黑树中
tree 红黑树的根结点
key 插入结点的键值
*/
template <class T>
void RBTree<T>::insert(T key)
{
RBTNode<T> *z=NULL;

// 如果新建结点失败,则返回。
if ((z=new RBTNode<T>(key,BLACK,NULL,NULL,NULL)) == NULL)
return ;

insert(mRoot, z);
}