代码如下:
/*Given n data stored in an array a, establish a linked list C using the header insertion.*/
#include <iostream>
#include<stdio.h>
using namespace std;
#define maxSize 100
typedef struct LNode
{
int data;
struct LNode* next;
}LNode;
int main()
{
void createlistF(LNode * &, int [], int );
void printlist(LNode *);
LNode* C;
int a[maxSize],n;
cout << "Please enter the number of elements:" << endl;
cin >> n;
for (int i = 0; i < n; i++)
{
scanf_s("%d", &a[i]);
}
createlistF(C, a, n);
printlist(C);
return 0;
}
void createlistF(LNode * &C, int a[], int n)
{
LNode* s;
C = (LNode*)malloc(sizeof(LNode)); //C is the head node of the linked list, it does'nt store datum
C->next = NULL;
for (int i = 0; i<n; i++)
{
s = (LNode*)malloc(sizeof(LNode));
s->next = C->next;
C->next = s;
s->data = a[i];
}
return;
}
void printlist(LNode* C)
{
C = C->next;
while (C)
{
printf("%d", C->data);
if (C->next)
{
printf(" -> ");
}
C=C->next;
}
return;
}
我是在Visual Studio上面编写的程序,奇怪的是为什么scanf函数会用不了,要改成scanf_s或者换到其他IDE才行。