广义表的作用广义表的应用导读:就爱阅读网友为您分享以下“广义表的应用”的资讯,希望对您有所帮助,的支持!件综合课程广义表的应用图书借阅管理系统二〇一四年六月设计软1广义表的应用一、问题陈述由于广义表在结构上较线性表复杂得多,因此,广义表的运算也不如线性表简单。本设计要求实现的广义表的建立、查找、输出、取表头和取表尾以及求深度、求逆表等。本设计用一个主控菜单程序控制,共分为6个子系统。(1)建立广义表(2)输出广义表(3)结点的查找(4)求广义表表头(5)求广义表表尾(6)求广义表的深度二、-6来选择菜单项,超出此范围时,提示输入错误,并重新输入。运行程序时,先输入一个广义表,回车后,调用各功能函数,则出现功能菜单,输入的一个数字,该数字用sn存储,使用choose()接受数字输入,该函数的返回值提供给主函数;则主函数使用while循环实现重复选择,以实现不同的广义表菜单功能。:输出广义表、广义表深度、广义表表头、广义表表尾、广义表查找、广义表逆置6个函数。运行程序时,首先执行主函数,根据提示,建立广义表,广义表中的元素应单独输入,每输入一个字符,回车,广义表输入完成时,应再次输入“)”,表示输入结束,这是由于CreateGList函数递归的原因,回车,此时调用choose()函数,出现功能菜单,提示用户进行相关操作,进入任一操作,通过switch(choose())对用户所输入的信息进行匹配,匹配后调用相关的子函数,从而实现各项函数的功能。,先定义一个整型数据i=0和一个数组a[10],构建时,先输入一个字符,如果输入字符的是‘#’,则广义表为空,否则输出第一个左括号。接下来的元素项如果是子表,则递归调用CreateGList(),若是原子,则直接输出,并将输入的数据保存在数组a[i]中,同时i++,然后继续输入保存用户所3输入的数据,若是‘,’,则递归调用CreateGList()函数,继续执行第一步,当遇到‘)’时,结束。,它直接关联到后面的取表头、表尾运算。函数中,分为原子和子表,若是子表,则利用头结点指针,递归输出子表。若是原子,则直接输出该原子的数值。然后判断下一结点是否为空,不为空则输出“,”,继续递归输出,执行上一步的操作。,输入要查找的元素,将该元素与数组中的元素进行比较,若相等,则查找成功,输出此元素的位置信息,当查找超出范围时,输出查找失败信息。6(求广义表的表头4表头分为子表和原子。当表头为子表时,先输出左括号,再通过递归调用依次输出表头,最后输出右括号。当表头为原子时,直接输出原子数值。,则广义表中除去表头后其余元素构成的子表为表尾。函数中,定义指针p、q,q用于指向广义表表头,q->next为广义表表尾,并赋值给p,因p也是广义表,则可调用广义表输出函数PrintGList(),输出表尾。,因此算法中,先后调用取表尾函数和取表头函数,先输出表尾,再输出表头,以此实现逆置功能。:它等于所有子表中表的最大深度加1。若一个表为空,则深度为1。定义dep表示任一子表5的深度,max为所
广义表的作用+广义表的应用 来自淘豆网www.taodocs.com转载请标明出处.