C++链表的插入问题

2025-03-04 08:27:03
推荐回答(2个)
回答1:

将你的插入函数补充如下:
void insert(node *head, int n) //插入到第n个结点之后
{
char c[20];
long number2;
node *p = head, *newnode = new node;
cout << "请输入要插入的成员的姓名" << endl;
cin >> c;
cout << "请输入要插入的成员的号码"< cin >> number2;
newnode->number = number2;
strcpy(newnode->b, c);
for(int i = 0; i < n && p->next != NULL; i++)
{
p = p->next; }
newNode->next = p->next;
p->next = newNode;
}
删除功能如下:
void DeleteElem(node *head, int n, char name[], long &number)
{
node *pre =NULL; *pdel = head;
for(int i = 0; i < n && pdel != NULL; i++, pre = pdel, pdel = pdel->next) ;
if(pdel == head) head = pdel->next;
else pre->next = pdel->next;
strcpy(name, pdel->b);
number = pdel->number;
delete pdel;
}

回答2:

void insert(node *head,int j,int ,n)
{
    char c[20];long number2;
    node *ptemp = head;
    
      node *newnode=new node;
      cout<<"请输入要插入的成员的姓名"<      cin>>c;
      cout<<"请输入要插入的成员的号码"<      cin>>number2;
      newnode->number=number2;
      strcpy(newnode->b,c);
      for(int i=0;i      {
        ptemp++;    
     }
    node->next = ptemp->next;
    ptemp->next = node;
}
void del(node *head,int ,n)
{   
    node *ptemp = head;
    for(int i=0;i    {
        ptemp++;    
    }
    if(ptemp ==head)
    {
        head = head->next;
        delete ptemp;
    }
    else
    {
       node *pP=ptemp--;
       pP->next = ptemp->next;
       delete ptemp; 
    }
    
}