1、求一个链表当中的最大值和最小值

#include <iostream>
#include <stdlib.h>
using namespace std; 

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode;

LNode* createLinkList()  //创建的链表 
{
    LNode *head;
    head=(LNode*)malloc(sizeof(LNode));
    head->next=NULL;
    int num; 
    cout<<"请问元素个数是:\n";
    cin>>num;
    cout<<"请输入您的元素:\n"; 
    for(int i=0;i<num;i++)  //tou插法插入链表 
    {
        LNode *p=(LNode*)malloc(sizeof(LNode)); 
        p->next=head->next;
        head->next=p;
        cin>>p->data ;
    }
    return head;
}


LNode* getMax(LNode *head)
{
    LNode *temp=head->next;
    LNode *max=temp;
    while(temp!=NULL)
    {
        if(max->data<temp->data)
        {
            max=temp;
        }
        temp=temp->next;
    }
    return max ;
}

LNode* getMin(LNode *head)
{
    LNode *temp=head->next;
    LNode *min=temp;
    while(temp!=NULL)
    {
        if(min->data>temp->data)
        {
            min=temp;
        }
        temp=temp->next;
    }
    return min ;
}

int main01() 
{

    LNode *h=NULL;
    h=createLinkList();
    LNode* max=getMax(h);
    LNode* min=getMin(h);
    cout<<"该链表的最大值是:"<<max->data<<"\n"<<"最大值的地址是:"<<max<<"\n\n";
    cout<<"该链表的最小值是:"<<min->data<<"\n"<<"最xiao值的地址是:"<<min<<"\n\n"; 
    
    cout<<sizeof(int);  //int 占有4个字节 
    
    return 0;
}

上一篇:第二章学习小结


下一篇:单链表的查找、建立操作(C语言)