定义了一个结构,链表里存着链表。但是
typedef struct ElemType
{
int i;
int j;
double t;
double T;
Boolean x;
Boolean y;
}ElemType;
typedef struct SqList
{
ElemType *elem; /* 存储空间基址 */
int length; /* 当前长度 */
int listsize; /* 当前分配的存储容量(以sizeof(ElemType)为单位) */
int k;
}SqList;
typedef struct SSqList
{
SqList *List; /* 存储空间基址 */
int length; /* 当前长度 */
int listsize; /* 当前分配的存储容量(以sizeof(ElemType)为单位) */
}SSqList;
有这样一个插入操作
Status SSqListInsert(SSqList *List,SqList L) /* 算法2.4 */
{ /* 初始条件:顺序线性表L已存在 */
/* 操作结果:在List尾部插入新的数据元素e,List的长度加1 */
SqList *newbase,*q;
if((*List).length>=(*List).listsize) /* 当前存储空间已满,增加分配 */
{
newbase=(SqList *)realloc((*List).List,((*List).listsize+LISTINCREMENT)*sizeof(SqList));
if(!newbase)
exit(OVERFLOW); /* 存储分配失败 */
(*List).List=newbase; /* 新基址 */
(*List).listsize+=LISTINCREMENT; /* 增加存储容量 */
}
q=(*List).List+(*List).length; /* q为插入位置 */
(*q).elem=L.elem; /* 插入e */
(*q).k=L.k;
(*q).length=L.length;
(*q).listsize=L.listsize;
++(*List).length; /* 表长增1 */
return OK;
}
主函数如下
void main()
{
int k=1;
SqList WP;
SSqList List;
ElemType E,F;
InitList(&WP);
InitSSqList(&List);
for(int i=1;i<4;i++)
{
for(int j=0;j<3;j++)
{
E.i=j;E.j=i;
E.T=i+j;E.t=i+j;
E.x=0;E.y=1;
ListInsert(&WP,E);k++;
}
}
printList(WP);
SSqListInsert(&List,WP);
SqList ZP;
InitList(&ZP);
ZP=WP;
SSqListInsert(&List,ZP);
ListDelete(&ZP,2,2,&E);
printSSqList(List);
}
在ListDelete(&ZP,2,2,&E);删除之后,不知道为什么List里面的也会被删掉~~求高手
[解决办法]
在ListDelete下指令断点 or 在List上下数据断点
[解决办法]
调试吧,如果你连自己写的代码也懒得看的话