读书人

一个链表有关问题望精通数据结构的达

发布时间: 2012-02-05 12:07:15 作者: rapoo

一个链表问题,望精通数据结构的达人来帮忙!
我想写一个可以任意删除的链表,链表结构为下:
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这 个变量从哪里来的

读书人网 >C语言

热点推荐