#include <iostream>
#include <cstring>
using namespace std;
typedef int ElemType;
typedef struct LNode {
ElemType sn;
ElemType sc;
string name;
struct LNode *next;
} *LinkList, LNode;
void InitList(LinkList &L);
LinkList List_HeadInsert(LinkList &L);
void InsertLink(LinkList &L1, LinkList &L2);
void display(LinkList L);
int main() {
LinkList L1;
InitList(L1);
List_HeadInsert(L1);
display(L1);
}
void InitList(LinkList &L) {
L = (LNode *)malloc(sizeof(LNode));
L->next = NULL;
}
LinkList List_HeadInsert(LinkList &L) {
ElemType tsn, tsc;
string tname;
L = (LinkList)malloc(sizeof(LNode));
LNode *s, *r = L;
cin >> tsn >> tname >> tsc;
while (true) {
s = (LinkList)malloc(sizeof(LNode));
s->name = tname;
s->sc = tsc;
s->sn = tsn;
r->next = s;
r = s;
cin >> tsn >> tname >> tsc ;
}
r->next = NULL;
return L;
}
void InsertLink(LinkList &L1, LinkList &L2) {
L2->next = L1->next;
L1->next = L2;
}
void display(LinkList L) {
for (LNode *p = L -> next; p != NULL; p = p -> next)
cout << p -> sn << " " << p->name << " " << p->sc << endl;
cout << endl;
}
int main() {
LinkList L1;
InitList(L1);
List_HeadInsert(L1);
display(L1);
}
这里没有写 return 0;
所以返回值是随机的,这是正常的
1.头文件对应c语言版本<string.h>,此处错误引用头文件,string是C++类,应该改为#include
2.36行代码死循环,无退出条件。
3.使用C++,对类操作应该使用new delete。