C++ 数据结构实现线性表的基本操作……呼叫高手呼叫高手!!

来源:百度知道 编辑:UC知道 时间:2024/06/18 13:03:12
程序运行总是要出错,实在是找不出来了,来找找高手~
//这个是main函数里面的一部分,负责用户插入节点

case '1':if(list)
{
cout<<"插入一个元素,"<<endl;
int value1;
int position1;
cout<<"请输入插入的元素值和位置:";
cin>>value1>>position1;
Insert(list,value1,position1);
Display(head);
cout<<endl;
}
//这就是Insert函数
void Insert(struct List* Head,int value,int position)
{
struct List* p;
struct List* temp;
struct List* H;
H = Head->next;
p = Head->next;
while(position > 1)
{
p = p->next;
position--;
}
temp = p->next;
p->next = new struct List;
p->next->element = value;
p -> next->next = temp;
delete temp,p;
}
//这个就是Displ

初学者吧? 程序乱乱的..
问题1:表为空时插入有问题,单独一个if语句处理表为空插入.

2:表首插入有问题,也就是position == 1时,自己看.

3:你insert函数里,干嘛要?delete ?又没为那两个申请空间,你只申请指针 .

over.看得我头晕...

while(position > 1)
{
p = p->next;
position--;
}

总觉得是position>0;

程序不完整怎么查错?