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

一个链表有关问题,望精通数据结构的达人来帮忙

2012-02-05 
一个链表问题,望精通数据结构的达人来帮忙!我想写一个可以任意删除的链表,链表结构为下:typedefstruct_LIS

一个链表问题,望精通数据结构的达人来帮忙!
我想写一个可以任意删除的链表,链表结构为下:
typedef   struct   _LIST
{
int8   Flag;    
int8   Content[40];
struct   _LIST*   pNext;
}LIST;  

LIST*   g_MOList   =   NULL;
LIST*   g_MOTemp   =   NULL;
LIST*   g_MOTemp1   =   NULL;
 
void   ShanChu(void)
{
LIST*   pNode   =   NULL;

    pNode   =   g_MOTemp   =   g_MOTemp1   =   g_MOList;
        while(pNode   !=   NULL)
        {
            if   (pNode-> Flag==   1)
            {
                if(pNode   ==   g_MOList)
                {
                    if(g_MOList-> pNext   !=   NULL)
                        g_MOList   =   pNode-> pNext;
                    else
                        g_MOListTail   =   g_MOList   =   NULL;    
                }
                else
                {
                    if(pNode-> pNext   !=   NULL)
                    {
                        g_MOTemp1   =   pNode-> pNext;
                    }
                    else
                    {
                        g_MOListTail   =   g_MOTemp1;
              g_MOTemp1-> pNext   =   NULL;
                    }

                }
          }
        else
        {
                g_MOTemp1   =   pNode;
                g_MOTemp=   g_MOTemp1;
                g_MOTemp=   g_MOTemp-> pNext;
        }

            pNode   =   pNode-> pNext;
 
  }
        g_MOTemp   =   g_MOList;
        return   0;
  }
}

比如有一个链表括号里面表示该结点的Flag值
1(1),2(1),3(0),4(1),5(1)
删除结点的时候,第一个结点和第二个结点1和2都能够删除,但是
3,4,5结点就不能删除,不知道是哪里出了错误,还望朋友帮忙指出,谢谢!


[解决办法]
能否解释一下这段落
else
{
g_MOTemp1 = pNode;
g_MOTemp= g_MOTemp1;
g_MOTemp= g_MOTemp-> pNext;


}
好像什么也没做
[解决办法]
感觉很乱,你到底要做什么的
g_MOListTail这 个变量从哪里来的

热点排行