《数据结构习题集(李冬梅 第2版)C语言版源程序习题源代码 习题集-算法2-6.docx》由会员分享,可在线阅读,更多相关《数据结构习题集(李冬梅 第2版)C语言版源程序习题源代码 习题集-算法2-6.docx(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ttinclude 件include using namespace std;函数结果状态代码define OK 14define ERROR 0 /define OVERFLOW -2 /Status是函数的返回值类型,其值是函数结果状态代码 typedef int Status;结点的数据城结点的指针域/LinkList为指向结构体LNode的指针类typedef struct LNode (int data;struct LNode *next;LNode, *LinkList;型Status InitList (LinkList &L);初始化Status DestroyList (L
2、inkList &L);销毁链表void CreateList_R (LinkList &L, int L_Data(Lint n); /后插法创立单链表输出链表int Max (LinkList L);求最大值void PrintList(LinkList L);int main() ( int laData=2,-6,8,9,-11,15,-201; LinkList la; InitList(la);CreateList_R(la/laData,sizeof(laData)/sizeof(laData0);int lamax=Max(la); cout(链表la中的最大值为:next=N
3、ULL;头结点的指针域置空return OK; 销毁链表 Status DestroyList(LinkList &L) ( while(L) ( LNode *p=L; L=L-next; delete p;释放空间 return OK;/后插法创立单链表void CreateList_R(LinkList &L,int L_Data,int n) /正位序输入n个元素的值,建立带表头结点而单链表LLNode *r = L;for (int i=0;idata=L_Datai;p-next=NULL; r-next r=p;尾指针r指向头结点生成新结点初始化p的数据域为L_Data iP;
4、将新结点*p插入尾结5*r之后r指向新的尾结点*p输出链表void PrintList(LinkList L) (LNode *p=L;cout,None;p=p-next;while(p) (cout,* p-data; p=p-next;coutendl;求最大值int Max(LinkList L)确定单链表中值域大的结点NULL;/pmax指向首元结点P指向第二个结点遍历链表,如果卜一个结点存在if(L-next=NULL) returnLNode *pmax=L-next;LNode *p=L-next-next;while(p!=NULL)if(p-datapmax-data) pmax=p;p=p-next;if(p-datapmax-data) pmax=p;p=p-next;/pmax指向数值大的结点p指向下一个结点,维续遍历return pmax-data; 输出结果:链表la中的最大值为:15