《数据结构习题集(李冬梅 第2版)C语言版源程序习题源代码 习题集-算法3-10.docx》由会员分享,可在线阅读,更多相关《数据结构习题集(李冬梅 第2版)C语言版源程序习题源代码 习题集-算法3-10.docx(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、/#include using namespace std; /函数结果状态代码define OK 1# define ERROR 0define OVERFLOW -2# define MAX 100/Status是函数的返回值类型,其值是函数结果状态代码 typedef int Status;typedef int ElemType;/链表的存储结构/创立链表/输入结点值并构建链表/递归求解链表的最大整数/递归求解链表的结点个数/递归求解链表中所有整数的平均值/输出链表的最大整数/输出链表的结点个数/输出链表中所有整数的平均值typedef struct LNode ( ElemType
2、data; struct LNode *next; LNodez *LinkList;Status Init (LinkList &L);Status Input(LinkList &L,int n); int GetMax(LinkList p); int GetLength(LinkList p); double GetAverage(LinkList pz int n);int main() ( LinkList L; Init (L); int n; cinn; Input(L,n);coutnext)endl;coutnext)endl; coutnextA n)next=NULL;
3、 return OK; )Status Input(LinkList &L,int n) /输入结点值并构建链表 LinkList p=L; while(n)LinkList q=new LNode; cinq-data;q-next=NULL; p-next=q;p=q;return OK;) int GetMax(LinkList p)/递归求解链表的最大整数if (!p-next)return p-data;else(int max=GetMax(p-next);return p-data=max?p-data:max;)int GetLength(LinkList p)/递归求解链表的
4、结点个数if(!p-next)return 1;else( return GetLength(p-next)+1;)/p指向表尾,返回其数值域/递归/返回较大者/p指向表尾,返回1/每递归一次,结点个数加1double GetAverage(LinkList p,int n) /递归求解链表中所有整数的平均值if (!p-next)/p指向表尾,返回其数值return p-data;else(double ave=GetAverage(p-next,n-1);/递归求解除尾结点之外的其余n-1个结点的平均值return (ave* (n-1) +p-data) /n;/返回平均值 输入:输出结果: