允许分多行输入一个广义表,建立广义表的存储结构
时间: 2023-12-11 21:27:02 浏览: 133
建立广义表存储结构非递归算法的研究与实现
4星 · 用户满意度95%
好的,我可以回答你的问题。首先,广义表是一种可以嵌套的数据结构,它可以包含元素和子表,用逗号分隔。例如,一个广义表可以是 (1, 2, (3, 4), 5),其中子表 (3, 4) 是嵌套在广义表中的。
为了存储广义表,我们可以使用链表结构。具体来说,每个节点可以存储一个元素或者一个子表。这个节点可以包含两个指针,分别指向下一个节点和子表的头节点。如果节点存储的是子表,那么子表的头节点指向下一个节点。
为了实现允许分多行输入一个广义表的功能,我们可以使用栈来实现。具体来说,我们可以将每行输入的内容转换成一个广义表或者一个元素,然后将它们依次压入栈中。当遇到一个右括号时,就从栈中弹出元素或者子表,构建一个新的子表并将它压入栈中。最终,栈中只剩下一个节点,这个节点就是整个广义表的头节点。
阅读全文