#include<iostream>
using namespace std;
typedef struct node {
int data;
struct node *next;
node(int data = 0, struct node* next = NULL) : data(data), next(next) {}//构造函数初始化列表
} Node, *pNode;
void insert(pNode& head, int position, int data){
if (position>head->data)
{
cout << "插入链表长度不够" << endl;
return;
}
pNode p;
p = head;
for (int i = 0; i < position; i++)
{
p = p->next;//插入到p节点后
}
pNode s = new Node(data);//s没有需初始化
s->next = p->next;
p->next = s;
(head->data)++;
}
void remove(pNode& head, int position){
if (position>head->data-1)
{
cout << "删除链表长度不够" << endl;
return;
}
pNode p;
p = head;
for (int i = 0; i < position; i++)
{
p = p->next;//删除p节点后的节点
}
pNode q;
q = p->next;
p->next = q->next;
free(q);
(head->data)--;
}
int main(){
pNode head = new Node();
insert(head, 3, 1);
insert(head,0,1);
insert(head, 0, 3);//231
remove(head, 3);
remove(head, 0);//11
cout << head->data << endl;//输出链表的长度(不包括head)
return 0;
}
链表的插入、删除
最新推荐文章于 2021-02-03 17:56:00 发布