数据结构(C++)初级问题~~

来源:百度知道 编辑:UC知道 时间:2024/06/28 10:08:26
才开始接触数据结构,C++基础不好,希望高手指点迷津
#include<iostream.h>
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;

void CreatList(LinkList &L){// 后插法创建链表
int i,n;LinkList p,q;
L=new LNode;
L->next=NULL;
q=L;
cout<<"please input the total number:"<<endl;
cin>>n; //输入待建链表中元素的个数
for(i=0;i<n;i++){
p=new LNode;
cout<<"第"<<i+1<<"个元素"<<endl;
cin>>p->data;
q->next=p;
q=p;
}
q=L->next;
while(q&&n>0){
cout<<q->data<<endl;
q=q->next;
--n;
}
cout<<"插入完毕!"<<endl;
}
void MaxElem(LinkList L){
LinkList p,max;
max=L->next;
p=max->next;
while(p){
if(p->data>max->data)
max=p;
p=p->next;
}
cout<

好像以前也碰到过类似的问题
不能用while(p)判断循环结束,不存在p->next的时候P仍然返回真
用个全局变量控制一下好了

#include<iostream.h>
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
int N; //记录输入个数
void CreatList(LinkList &L)
{
int i,n;LinkList p,q;
L=new LNode;
L->next=NULL;
q=L;
cout<<"please input the total number:"<<endl;
cin>>n;
N = n;
for(i=0;i<n;i++)
{
p=new LNode;
cout<<"第"<<i+1<<"个元素"<<endl;
cin>>p->data;
q->next=p;
q=p;
}
q=L->next;
while( n>0) //用N判断,前面的条件始终成立
{
cout<<q->data<<endl;
q=q->next;
--n;
}
cout<<"插入完毕!"<<endl;
}
void MaxElem(LinkList L)
{
LinkList p,max;
max=L->next;
p=max->