C++实现静态链表(二)

2014-04-06 17:34:57 · 作者: · 浏览: 195

 

  i = space[i].cur;

  m++;

  }

  return false;

  }

  //在表尾增加一个新节点

  bool add(StaticList & space,int h,int m)//m代表新增加节点的下标值,h表示数据链表的头结点

  {

  int i = h;

  while(space[i].cur)

  {

  i = space[i].cur;

  }

  space[i].cur = m;

  space[m].cur = 0;

  return true;

  }

  int main()

  {

  //定义一个静态链表

  StaticList MyList;

  InitSList(MyList);

  //分配一个新节点做为数据节点 空闲节点的默认头节点为0

  int h = Malloc_SL(MyList);

  MyList[h].cur = 0;

  //添加新节点

  int t = Malloc_SL(MyList);

  MyList[t].data = 1;

  add(MyList,h,t);

  t = Malloc_SL(MyList);

  MyList[t].data = 2;

  add(MyList,h,t);

  t = Malloc_SL(MyList);

  MyList[t].data = 3;

  add(MyList,h,t);

  //遍历并输出该链表上的所有数据

  cout《"遍历并输出该链表上的所有数据:

  "<<<ENDL;

  pre }< cout《endl;

  } i="MyList[h].cur;" ;

  cout《MyList[i].data《 {

  (i) while dele(MyList,h,2);

  cout《 删除第2节点: 《endl;

  删除第2个节点 insert(MyList,h,t,2);

  MyList[t].data="5;" t="Malloc_SL(MyList);"

  cout《 在第2个元素之前插入一个值为5的新节点: 《endl;

  在第2个元素之前插入一个新节点

  int><BR>