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

关于链表删除操作,该如何处理

2012-02-17 
关于链表删除操作#include stdio.htypedefintElemTypetypedefstructlnode{ElemTypeelementstructlnode

关于链表删除操作
#include <stdio.h>
typedef   int   ElemType;
typedef   struct   lnode{
                ElemType   element;
                struct   lnode   *next;
                }lnode,   *LinkList;

int   length(LinkList   l)
{
        LinkList   p=l;
        int   count=0;
        if   (p==NULL)   return   count;
              else   {
                        while   (p!=NULL)   {
                                    count++;  
                                    p=p-> next;
                                    }
                        return   count;
                        };
        return   -1;
}

int   del(LinkList   l,int   pos)
{
        LinkList   p=l;
        LinkList   t;
        if(pos> length(l))   return   -1;
            else   {
                      while   (pos> 2)   p=p-> next;
                      t=p-> next;
                      p-> next   =   t-> next;
                      free(t);
                      return   0;
                      }
}

如此写的del函数编译通过
执行的时候程序就死掉了~~
望指教~
执行的时候链表非空~

[解决办法]
while (pos> 2) p=p-> next;/*死循环*/
LZ是不是写错了???

热点排行