单点时限: 10.0 sec
内存限制: 512 MB
广义表(Lists,又称列表)是一种非线性的数据结构,是线性表的一种推广。即广义表中放松对表元素的原子限制,容许它们具有其自身结构。它被广泛的应用于人工智能等领域的表处理语言LISP语言中。广义表中可以存储原子或者子表,广义表的深度则为广义表中存储子表的最大层数。
现在希望你定义一个函数,返回指定广义表的深度。只需完成给定函数的定义。
int getListsDeepth(NODE* head){
// TODO
}
其中
NODE
表示链表的结构体,定义如下
typedef struct node{
int tag;
union{
struct node* dlink;
char data;
}dd;
struct node *link;
}NODE;
head
为最外层广义表的头节点(存放有效数据)
不会出现循环嵌套子表的情况,如$C=(a,C)$
#include <stdio.h>
#include <stdlib.h>
/* 其他声明与定义,细节隐藏不表 */
/* 你的代码将会被嵌入在这个部分 */
/* 其他声明与定义,细节隐藏不表 */
int main(){
input(); /* 输入及其他处理,细节隐藏不表 */
NODE* head = create();
printf("%d", getListsDeepth(head));
return 0;
}