我想问下C++这个怎么个解释法?

来源:百度知道 编辑:UC知道 时间:2024/04/28 14:04:39
void Creat(Link *L , int x)
{
Link *p , *q ;
L = new Link ;
L->next = NULL ;
q = L ;
cout<<"在单链表内输入整数:"<<endl;
for (int i = 0 ; i < x ; i++)
{
p = new Link ;
cin >> p->data ;
p->next = q->next ;
q->next = p ;
q = p ;
}
}

谢谢。

如果猜的没错,你前面应该还有这么一段:
typedef struct Link //定义一个名为Link的结构体
{
int data;//(不太确定是不是整型,可能是实型)
Link * next;
}
void Creat(Link *L , int x) //无返回值,参数为Link型指针(应该是作链表表头),和整型x(应该是链表长度)
{
Link *p , *q ; //定义Link型指针p,q
L = new Link ; //申请Link型大小的空间,将空间地址指针返回给L
L->next = NULL ; //L的下一个为空,表示链表长为0
q = L ; //将L值赋给q
cout<<"在单链表内输入整数:"<<endl; //提示信息
for (int i = 0 ; i < x ; i++) //循环x次,每次建立一个节点
{
p = new Link ; //申请空间,将空间地址指针返回给p
cin >> p->data ; //向刚申请的空间内的data输入值
p->next = q->next ; //将q->next(NULL)赋给p->next;即是说新申请的空间的下一个节点为空
q->next = p ; //将p赋值给q->next,使上一个节点指向现在刚申请的空间,实现节点间的连接
q = p ; //将p赋值给q,使下一次循环q指向这次生成的空间,也就是说,q每次指向上一步已生成空间
}
}

//在上述for循环中,p始终指向新生成的空间,q始终指向上一步已生成空间,