3.不带头结点的单链表中编写三个函数,实现分别求用头插法建立此单链表,向单链表的表尾中插入一个结点和删除指定位置结点的函数。
时间: 2023-06-02 08:05:40 浏览: 102
可以回答。
对于第一个问题,我可以回答。下面是三个函数的实现:
1. 用头插法建立单链表
```C++
void createList(Node*& head)
{
int data;
head = NULL;
Node *p;
while (cin >> data)
{
p = new Node;
p->data = data;
p->next = head;
head = p;
}
}
```
2. 向单链表的表尾中插入一个结点
```C++
bool insertEnd(Node*& head, int data)
{
Node *p, *q;
p = new Node;
p->data = data;
p->next = NULL;
if (head == NULL)
head = p;
else
{
q = head;
while (q->next != NULL)
q = q->next;
q->next = p;
}
return true;
}
```
3. 删除指定位置结点
```C++
bool deleteNode(Node*& head, int pos)
{
Node *p = head, *q = NULL;
int i = 0;
if (pos < 1)
return false;
if (pos == 1)
{
head = head->next;
delete p;
return true;
}
while (p != NULL && i < pos - 1)
{
q = p;
p = p->next;
i++;
}
if (p == NULL)
return false;
q->next = p->next;
delete p;
return true;
}
```
以上是对应三个函数的实现。
阅读全文