node* create(array[])
{
node* head = new node;
head->next = nullptr;
node* pre = head;要先new node嘛/不用
while(int i=0;i<5;i++)
{
node* p = new node;
p->data = array[i];
p->next = nullptr;
pre->next = p;
pre=p;
不要加一条 p = p->next,这里p当作临时节点进行list拓展插入节点
}
return head;别忘记返回头节点
}
int search(node* head,int x)
{
count = 0;
node* p = new node;
p = head->next;这里替代成node* p = head->next;
while(p)
{
if(p->data == x)
{
count++;
}
p = p->next;
}
return count;
}
void insert(node* head, int pos, int x)
//在pos插入x 就是指第pos个位置上是x了 原来的需要让位子
{
node* p = head;
for(int i=0;i<pos-1;i++)
{
p=p->next;
}
node* q = new node;
q->data = x;
q->next = p->next;
p->next = q;
}
void delete(node* head, int x)
{
node* pre = head;
node* p = head->next;
while(p)
{
if(p->data == x)
{
pre->next = p->next;
delete(p);
p = pre->next;
}
else
{
pre = p;
p = p->next;
}
}
}
插入删除都是返回值void类型,且删除因为将原节点删除需要一个pre前驱指明现在的位置