从键盘输入输入n个整数,建立正序带表头结点的单链表?写算法

从键盘输入输入n个整数,建立正序带表头结点的单链表?计算机软件技术基础,写算法

正序,带头结点链表采用尾插法。
一个尾指针rear永远指向链表最后一个结点,每次新来的结点就插入到rear后面。

//构建结点结构体
typedef struct Node {
    int data;
    Node* next;
}*nodeList;
void InitLinkList(nodeList &L) {
    //初始化链表,建立头结点
    L= new Node();
    L->next = NULL;
}
bool CreateLinkList(nodeList &L) {
    int n;
    cin >> n;//scanf("%d",n);C语言用这个
    //进行尾插法
    if (n <= 0)
        return false;
    Node*rear = L;//尾指针,指向链表的尾部
    for (int i = 0; i < n; i++) {
        Node* p = new Node();
        cin >> p->data;//scanf("%d",p->data);C语言用这个
        rear->next = p;
        rear = p;
    }
    rear->next = NULL;
    return true;
}
void printfList(nodeList &L) {
    //用来打印链表,验证是否为正序
    Node*p = L->next;
    while (p) {
        cout << p->data << " ";//printf("%d ",p->data);C语言用这个
        p = p->next;
    }
    cout << endl;//printf("\n");C语言用这个
}
int main() {
    Node*L = NULL;
    InitLinkList(L);
    CreateLinkList(L);
    printfList(L);
}