初始化,插入,查找都有了 ,代码是我自己写的 并且调试正确
struct LinkTest{
int data;
struct LinkTest *pNext;
};
void InLinkStart(int data,struct LinkTest * &pStart,struct LinkTest * &pEnd)
{
struct LinkTest *NewData = (LinkTest *)malloc(sizeof(struct LinkTest));
NewData->data = data;
NewData->pNext = pStart->pNext;
pStart->pNext = NewData;
struct LinkTest *findend = pStart;
while (1) //寻找链表尾
{
if (findend->pNext != NULL)
{
findend = findend->pNext;
}
else
{
pEnd = findend;
break;
}
}
}
void InLinkEnd(int data,struct LinkTest * &pEnd)
{
struct LinkTest *NewData = (LinkTest *)malloc(sizeof(struct LinkTest));
NewData->data = data;
pEnd->pNext = NewData;
pEnd = NewData;
return;
}
int FindData(int index,struct LinkTest * &pStart)
{
struct LinkTest *FindIndex = pStart;
for (int i=0;i<index;i++)
{
if (FindIndex->pNext != NULL)
{
FindIndex = FindIndex->pNext;
}
else
{
return -1;
}
}
return FindIndex->data;
}
int main(array<System::String ^> ^args)
{
struct LinkTest *pHead = (LinkTest *)malloc(sizeof(struct LinkTest));
struct LinkTest *LinkEnd = pHead;
pHead->pNext = NULL;
//从头开始插入/
InLinkStart(5,pHead,LinkEnd);
InLinkStart(6,pHead,LinkEnd);
InLinkStart(7,pHead,LinkEnd);
InLinkStart(8,pHead,LinkEnd);
//插入末尾
InLinkEnd(9,LinkEnd);
InLinkEnd(10,LinkEnd);
InLinkEnd(11,LinkEnd);
int retdata = -1;
retdata = FindData(3,pHead); //返回找到的第三个元素的值
return 0;
}