刚学数据结构
在建立单链表时
void createlistR(LNode *&L, int a[], int n)
这一行报错 [错误] 期待 ';', ',' 或 ')' 在此之前: '&' 符号
请问这是怎么回事呢
#include <stdio.h>
#include <stdlib.h>
typedef struct LNode {
int data; //data中存放结点的数据域
struct LNode *next; //指向后继结点的指针
} LNode; //定义单链表结点类型
//尾插法建立链表
void createlistR(LNode *&L, int a[], int n) { //要改变的变量用引用型
LNode *s, *r; //s用来指向新申请的结点,r之中指向L的终端结点
int i;
L = (LNode *)malloc(sizeof(LNode)); //申请L的头结点空间
L->next = NULL;
r = L; // r指向头结点,因为此时头结点就是终端结点
for (i = 0; i < n; ++i) { // 循环申请n个结点,来接受数组a中的元素
s = (LNode *)malloc(sizeof(LNode)); // s指新申请的结点
s->data = a[i]; // 用新申请的结点来接受a中的一个元素
r->next = s; // 用来接纳新结点
r = r->next; // r指向终端结点,以便于接纳下一个到来的结点
}
r->next = NULL; // 数组a中所有的元素都已经装入链表L中,L的终端结点的指针域置为NULL,L建立完成
}
//打印链表数据
void printfList(LNode *L) {
LNode *temp = L;
int count = 0; //计数器
printf("表中的元素为:\n");
while (temp->next) {
temp = temp->next;
printf("%d\t", temp->data);
count++;
if (count % 5 == 0) { //每5个元素作为一行
printf("\n");
}
}
printf("\n");
}
int main() {
LNode *L;
int n;
printf("请输入数组的个数:");
scanf("%d", &n);
int a[n];
printf("请输入数组中的数(用空格分开):\n");
for (int i = 0; i < n; ++i) {
scanf("%d", &a[i]);
}
//测试尾插法建立链表
createlistR(L, a, n);
//查看建立后的链表
printfList(L);
return 0;
}
0 Commentaires