直接利用两个指针,指向两个节点,p1 p2,p1指向两者较大的,最后p1所指向的就是
表中值最大的节点:
typedef struct Node
{
int elem;
struct Node* Next;
}Node;
//*****************初始化表*******************
void InitLink(Node* &L)
{
L = new Node;
L->Next = NULL;
}
//*****************创建表**********************
void CreatLink(Node* L)
{
cout<<"请输入表数据,以-1结束输入:"<
Node* s = new Node;
while(cin>>s->elem,s->elem != -1)
{
s->Next = NULL;
p->Next = s;
p = s;
s = new Node;
}
delete s;
}
//*****************打印表************************
void Print(Node* L)
{
Node* p = L->Next;
while(p)
{
cout<
p = p->Next;
}
cout<
//*****************查找最大元素值*******************
Node* SearchMax(Node* L)
{
Node* p1;
Node* p2;
p1 = L->Next;
p2 = p1->Next;
while(p2)
{
if(p2->elem > p1->elem)
{
p1 = p2;
p2 = p2->Next;
}
else
{
p2 = p2->Next;
}
}
return p1;
}
int main()
{
Node* L;
InitLink(L);
CreatLink(L);
cout<<"链表为:";
Print(L);
Node* p = SearchMax(L);
cout<<"表中最大值为:";
cout<
}