单链表查找最大值
代码:
1 #include<iostream> 2 #include<bits/stdc++.h> 3 using namespace std; 4 struct Node{ 5 int value; 6 Node * next; 7 }; 8 Node *a=new Node; //创建头指针 9 void build_link(Node * a,int n){ //建表 10 Node *p; 11 p=a; 12 for(int i=0;i<n;i++){ 13 Node *q=(Node *)malloc(sizeof(Node)); //给下一节点开辟空间 14 cin>>q->value; //按顺序输入每个节点的值value 15 q->next=NULL; 16 p->next=q; 17 p=q; 18 } 19 } 20 Node * Find(Node *a){ //查找最大值的节点 21 Node *pmax; 22 pmax=a->next; 23 while(a->next!=NULL){ 24 if(pmax->value<(a->next->value)){ 25 pmax=a->next; //pmax指向最大值节点 26 } 27 a=a->next; 28 } 29 return pmax; //返回最大值节点的地址 30 } 31 int main(){ 32 int n; 33 cin>>n; //输入链表的长度n 34 a->next=NULL; 35 build_link(a,n); 36 Node *pmax=Find(a); 37 cout<<pmax->value<<endl; //输出最大值 38 return 0; 39 }
两个递增链表的合并,并且去重
实现代码:
1 #include<iostream> 2 #include<bits/stdc++.h> 3 using namespace std; 4 struct Node{ 5 int value; 6 Node *next; 7 }; 8 void build_link(Node * a,int n){ 9 Node *p=a; 10 for(int i=0;i<n;i++){ 11 Node *q=new Node; 12 cin>>q->value; 13 q->next=NULL; 14 p->next=q; 15 p=q; 16 } 17 } 18 void combine(Node *a,Node *b){ 19 Node *p; 20 p=a; //p所指向的节点必须是比较的两个节点之前的节点!因为这个地方我找了好久的bug,如果不是这样会造成部分样例死循环! 21 a=a->next; 22 b=b->next; 23 while(a!=NULL&&b!=NULL){ 24 if(a->value == b->value){ 25 //cout<<‘b‘<<a->value<<‘ ‘<<b->value<<endl; 26 p->next=a; 27 p=a; 28 b=b->next; 29 a=a->next; 30 }else if(a->value < b->value){ 31 //cout<<‘a‘<<a->value<<‘ ‘<<b->value<<endl; 32 p->next=a; 33 p=a; 34 a=a->next; 35 }else{ 36 //cout<<‘c‘<<a->value<<‘ ‘<<b->value<<endl; 37 p->next=b; 38 p=b; 39 b=b->next; 40 } 41 } 42 if(a==NULL){ 43 p->next=b; 44 }else{ 45 p->next=a; 46 } 47 } 48 int main(){ 49 Node *a=(Node*)malloc(sizeof(Node)); 50 Node *b=(Node*)malloc(sizeof(Node)); 51 a->next=NULL; 52 b->next=NULL; 53 int n1,n2; 54 cin>>n1; 55 build_link(a,n1); 56 cin>>n2; 57 build_link(b,n2); 58 combine(a,b); 59 while(a->next!=NULL){ 60 cout<<a->next->value<<‘ ‘; 61 a=a->next; 62 } 63 return 0; 64 }
如有错误,麻烦指出。Thanks?(?ω?)?
原文地址:https://www.cnblogs.com/ISGuXing/p/8778408.html
时间: 2024-10-03 07:02:43