“红点系统”是游戏或App中的一种常见功能,用于提示用户当前需要关心的信息数目,例如微信的未读信息数目。它通常以树结构组织,每个节点对应系统中的子功能,有各自的提示数目(noticeCount)。当某个节点的noticeCount变化时,父节点的noticeCount也同步变化。例如树结构A→B→C,A,B和C的初始noticeCount分别为3,2和1,当C的noticeCount变为3时,A和B的noticeCount会分别变为5和4。
请编写程序,设计节点类型并提供设置节点noticeCount的实现方法。
节点类型要求包含以下关键属性:
1、节点id
2、提示数目
3、父节点(有且只有一个)
4、子节点(一个或多个,不同节点的子节点数目可能不同)
设置节点noticeCount的实现方法可以参考以下函数原型,参数列表必须为根节点,需要查找的节点id以及提示数目:
void SetNoticeCount(Node* root, int nodeId, unsigned int noticeCount);
提示:
1、父节点的noticeCount始终不小于子节点,不必考虑计算节点noticeCount时可能出现的溢出或负数问题
2、可以使用基本库中的容器类型,如STL的vector,stack和queue,Python的list和dict
3、可以使用自己擅长的语言