我想说我刚开始学习C ++而且我对插入,删除,反转,找到位置中的元素和元素有相当好的把握。我试图使用冒泡排序(?)排序,程序崩溃。请帮帮我。
struct node
{
int data;
struct node* link;
};
typedef struct node* NODE;
NODE rearr(NODE root)
{
NODE temp=root;
while(temp!=NULL)
{
NODE curr=temp;
while(curr!=NULL)
{
if(curr->data>(curr->link)->data)
{
int temp1=curr->data;
curr->data=(curr->link)->data;
(curr->link)->data=temp1;
}
curr=curr->link;
}
temp=temp->link;
}return root;
}
也有插入和删除功能,但我没有在这里复制。如果你愿意,我会发布整个程序。
答案 0 :(得分:0)
您永远不会测试curr->link
是否为空。当您检查data
memeber时会导致错误。
if(curr->link != NULL && curr->data>(curr->link)->data)