20xx山东大学数据结构试题及答案(编辑修改稿)内容摘要:

0 1 ∞ 4 ∞ 0 9 2 3 4 0 7 ∞ ∞ 6 0 0 1 10 3 ∞ 0 9 2 3 4 0 6 ∞ ∞ 6 0 0 1 10 3 12 0 9 2 3 4 0 6 9 10 6 0 0 1 9 3 11 0 8 2 3 4 0 6 9 10 6 0 五 、 ( 12分) 设双链表结点结构为 llink data rlink,请设计算法将其中 P所指结点与其 rlink所指结点位置互换的算法。 解 : typedef struct DLNode{ ElemType data。 struct DLNode *llink,*rlink。 }DLNode,*DLinkList。 //思想:将 Prlink先从链表中删除掉,然后再插入到 P前 Status SwapANode(DLNode *amp。 P) { //结点存在吗 ? if(!P || !(Prlink))return ERROR。 q = Prlink。 //删除 q结点 if(!qrlink) Prlink = NULL。 else { Prlink = qrlink。 qrlinkllink = P。 } //将 q结点插入到 P结点前面 if(!Pllink) { qllink = NULL。 qrlink = P。 Pllink = q。 } else { qllink = Pllink。 qrlink = P。 Pllinkrlink = q。 Pllink = q。 } return OK。 } 六 、 ( 13 分) 若有一棵二叉树的存储结构为二叉链表, T 指向根结点,请写出一个非递归算法判定其是否为二叉排序数。 解: 解法一 : define TRUE 1 define FALSE 0 typedef int BOOL。 typedef struct。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。