首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

定义了一个构造,链表里存着链表。但是

2012-11-11 
定义了一个结构,链表里存着链表。但是typedef struct ElemType{int iint jdouble tdouble TBoolean xB

定义了一个结构,链表里存着链表。但是
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上下数据断点
[解决办法]
调试吧,如果你连自己写的代码也懒得看的话

热点排行