四、设计题(本大题共2小题,共14分) 34.设有两个按升序排列的单链表X和Y,其头指针分别为p,q结点结构说明如下: typedef struct nodel { int data; struct nodel *next }node; 试设计一个算法void concat(node *p,*q)将它们合并成一个以p为头指针的单链表Z,使其仍然有序。(6分) 35.设有序表r长度为n,欲在表中查找键值为Kn的某元素。若查找成功,则返回该元素在有序表r中的位置,若不成功,则返回0值。用二分查找法,编写一算法完成上述操作,并给出该算法的平均查找长度。该有序表存储结构定义如下:(8分) typedef struct { keytype key; Elemtype data; }rec; typedef struct { rec item[maxsize+1]; int n; }sqtable;
|