作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 c 制作了一个树形结构,并用它来存储国际象棋游戏的一些 Action 。
我的结构是
struct node{
NSString *comment;
NSString *move;
struct node *variationLink;
struct node *nextLink;
struct node *goBack;
};
最佳答案
您需要创建一个递归释放结构的函数,例如:
void free_nodes(struct node *n)
{
if (n != NULL)
{
free_nodes(n->nextLink);
free_nodes(n->variationLink);
[n->comment release];
[n->move release];
free(n);
}
}
dealloc
中调用它方法:
- (void)dealloc
{
free_nodes(_root_node);
[super dealloc];
}
goBack
指针,但用于变化。这将允许您横向回到任何节点的主线,因为目前没有办法完全横向执行您的树。 goBack
至prev
, nextLink
至next
和 variationLink
至variation
,但这取决于你。 NSString
.字符串应该只在显示期间生成(在 View 的 draw 方法中)。这允许您实际使用移动数据,而不必再次解析字符串(非常昂贵)并且仅在显示期间进行字符串转换允许您根据用户偏好更改移动字符串的生成方式(短代数符号,长代数符号,坐标符号,使用 block 字符字体而不是字母等)。 typedef struct node
{
Move move; // Holds the move (this can be done using a 32-bit unsigned integer).
struct node *prev;
struct node *next;
struct node *variation;
struct node *mainline;
NSString *comment;
} Node;
mainline
链接指向上一个变体,即
NULL
如果这是主线移动。
NULL
):
关于ios - 如何在 xcode 项目中发布树结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11257754/
我是一名优秀的程序员,十分优秀!