单链表的初始化

  • Post author:
  • Post category:其他


#include<iostream>

#include<stdlib.h> // malloc函数头文件

using namespace std;

typedef struct LNode

{


int data; // 数据域

LNode* next; // 指针域

}LNode,*LinkList;

void List_TailInsert(LinkList& L, int n) // 初始化线性表 尾插法

{


L = (LinkList)malloc(sizeof(LNode)); // 创建一个头结点

if (L == NULL)

{


exit(0); // 创建失败

}

L->next = NULL; // 头结点之后暂无节点

cout << “请输入表中数据” << endl;

LNode* s;

LNode* r = L; // 尾指针

for (int i = 1; i <= n; i++)

{


s = (LinkList)malloc(sizeof(LNode)); // 创建新节点

scanf_s(“%d”, &(s->data)); // 赋值

r->next = s; // 尾插法

r = s;

}

r->next = NULL; // 尾节点置空

}

void list_HeadInsert(LinkList& L, int n) // 尾插法

{


L = (LinkList)malloc(sizeof(LNode));

if (L == NULL)

{


exit(0); // 创建失败

}

L->next == NULL; // 头结点之后无节点

cout << “请输入表中数据” << endl;

LNode* s;

for (int i = 1; i <= n; i++)

{


s = (LNode*)malloc(sizeof(LNode));

scanf_s(“%d”, &(s->data)); // 输入数据

s->next = L->next;

L->next = s;

}

}

void showList(LinkList& L) // 显示单链表

{


LNode* p = (LinkList)malloc(sizeof(LNode));

p = L->next;

while (p != NULL)

{


cout << p->data << endl;

p = p->next; // 直到最后一个

}

}

int main()

{


LinkList L; // 创建一个单链表

//List_TailInsert(L, 6);

list_HeadInsert(L, 5);

showList(L);

}

实验结果如下:

尾插法结果:

头插法结果:



版权声明:本文为Boyt1317原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。