Я ве написал программу на C++ для вставки в отсортированном связанный список - выдает ошибку: Процесс завершается со статусом -1073741510
я использовал двойные указатели здесь, чтобы получить доступ к головному узлу.
NO другие ошибки в программеПроцесс завершается со статусом -1073741510
#include<iostream>
using namespace std;
struct node
{
int data;
struct node* next;
};
void ins(int d,node** head)
{
node* temp=new node;
node* prev=new node;
temp->next=NULL;
temp->data=d;
if(head==NULL)
{
*head=temp;
}
else
{
node* ptr=*head;
while(ptr!=NULL && ptr->data<d)
{ prev=ptr;
ptr=ptr->next;
}
prev->next=temp;
temp->next=ptr;
}
}
void print(node* head)
{
node* ptr=head;int i=0;
while(ptr!=NULL)
{
cout<<i<<" "<<ptr->data<<" ";
i++;
ptr=ptr->next;
}
}
int main()
{
node* head=NULL;
ins(4,&head);
ins(10,&head);
ins(9,&head);
print(head);
return 0;
}`
Такой код стиля С. Вы теряете память в каждом слоте с помощью узла * prev = new node; и не использовать его. Однако он работает для меня без сбоев. – KIIV
@KIIV Чтобы сохранить предыдущий узел, нет никакого другого пути? –
Вы имеете в виду что-то вроде этого: http://cpp.sh/56sv? Но в C++ обычно используется «контейнерный класс», инкапсулирующий весь интерфейс. Нет процедурного программирования C-стиля, подобного этому ... – KIIV