void InitList(LinkList &L)
时间: 2024-03-27 21:35:45 浏览: 102
这是一个函数,函数名为 InitList,参数是指向链表头节点的指针 L,使用 &L 是为了能够修改链表头节点的值。该函数的作用是初始化一个空链表,即将链表头节点的指针 L 置为 NULL。函数的实现可以参考如下代码:
```
void InitList(LinkList &L) {
L = NULL;
}
```
相关问题
void InitList(LinkList &L) { L=new LNode; L->next=NULL; }
这也是一个初始化链表的函数,实现的方式与上一个函数不同。这个函数的作用是创建一个只有头节点的链表,即链表头节点的 next 指针为 NULL,表示链表为空。具体实现可以参考如下代码:
```
void InitList(LinkList &L) {
L = new LNode; // 创建头节点
L->next = NULL; // 头节点的 next 指针置为 NULL
}
```
需要注意的是,在使用该函数初始化链表后,需要使用 InsertNode 或者其他操作来添加节点才能构建一个非空的链表。
typedef struct Lnode { struct Lnode* next; int data; }Lnode, * LinkList; void InitList(LinkList & L) { L = new Lnode; L->next = NULL; }
L)
{
L = NULL; // 将头指针置为 NULL,表示链表为空
}
void CreateList(LinkList& L, int n)
{
Lnode* p, * q;
L = new Lnode; // 创建头结点
L->next = NULL;
q = L;
for (int i = 0; i < n; i++)
{
p = new Lnode; // 创建新节点
cin >> p->data;
p->next = NULL;
q->next = p;
q = p; // 将新节点插入到链表尾部
}
}
void DestroyList(LinkList& L)
{
Lnode* p, * q;
p = L;
while (p != NULL)
{
q = p->next;
delete p;
p = q; // 释放链表中所有节点的内存空间
}
L = NULL;
}
int ListLength(LinkList L)
{
int len = 0;
Lnode* p = L;
while (p->next != NULL)
{
len++;
p = p->next;
}
return len;
}
bool ListEmpty(LinkList L)
{
return L->next == NULL;
}
void GetElem(LinkList L, int i, int& e)
{
Lnode* p = L->next;
int j = 1;
while (p != NULL && j < i)
{
p = p->next;
j++;
}
if (p == NULL || j > i)
{
cout << "Error: out of range" << endl;
return;
}
e = p->data;
}
int LocateElem(LinkList L, int e)
{
Lnode* p = L->next;
int i = 1;
while (p != NULL && p->data != e)
{
p = p->next;
i++;
}
if (p == NULL)
return 0;
else
return i;
}
void ListInsert(LinkList& L, int i, int e)
{
Lnode* p = L;
int j = 0;
while (p != NULL && j < i - 1)
{
p = p->next;
j++;
}
if (p == NULL || j > i - 1)
{
cout << "Error: out of range" << endl;
return;
}
Lnode* q = new Lnode;
q->data = e;
q->next = p->next;
p->next = q; // 在第 i 个位置插入元素 e
}
void ListDelete(LinkList& L, int i, int& e)
{
Lnode* p = L;
int j = 0;
while (p->next != NULL && j < i - 1)
{
p = p->next;
j++;
}
if (p->next == NULL || j > i - 1)
{
cout << "Error: out of range" << endl;
return;
}
Lnode* q = p->next;
e = q->data;
p->next = q->next;
delete q; // 删除第 i 个位置的元素,并将其值赋给 e
}
void ListTraverse(LinkList L)
{
Lnode* p = L->next;
while (p != NULL)
{
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
阅读全文