struct Node
{
int iValue; //数据
struct Node* pNext; //下一个节点的地址
};
实例化几个成员
struct Node a = { 3,NULL },
b = { 5,NULL },
c = { 3,NULL },
d = { 3,NULL };
a.pNext = &b;
b.pNext = &c;
c.pNext = &d;
1.遍历这个伪链表
void Look(struct Node* pHead)
{
while (pHead != NULL)
{
printf("%dn", pHead->iValue);
pHead = pHead->pNext; //指向下一个节点
}
}
2.根据数据查找并返回这个节点此时这个伪链表已经建立完成了,并且遍历出来,下来咱们进行其他操作
struct Node* FindByData(struct Node* pHead, int iData)
{
while (pHead != NULL)
{
if (pHead->iValue == iData)
return pHead;
pHead = pHead->pNext; //指向下一个节点
}
return NULL;
}
3.根据下标查找并返回这个节点
struct Node* FindByIndex(struct Node* pHead, int iIndex)
{
// 0 开始表示下标 1 开始表示第几个
int iNum = 1;
while (pHead != NULL)
{
if (iNum == iIndex)
{
return pHead;
}
iNum++;
pHead = pHead->pNext; //指向下一个节点
}
return NULL;
}
查询:根据数据查询此节点是否存在
void ShowData(struct Node* pNode)
{
if (NULL == pNode)
{
printf("查无此节点n");
}
else
{
printf("查到节点: %dn", pNode->iValue);
}
}
记录:总共有几个节点
int Count(struct Node* pHead, int iData)
{
int iCount = 0;
while (pHead != NULL)
{
if (pHead->iValue == iData)
iCount++;
pHead = pHead->pNext; //指向下一个节点
}
return iCount;
}
修改:1.根据下标修改数据
void ChangeByIndex(struct Node* pHead, int iIndex, int iData)
{
struct Node* pTemp = FindByIndex(pHead, iIndex);
if (pTemp != NULL)
{
pTemp->iValue = iData;
}
}
修改:2.根据数值修改数据
void ChangeByData(struct Node* pHead, int iValue, int iData)
{
struct Node* pTemp = FindByData(pHead, iValue);
if (pTemp != NULL)
{
pTemp->iValue = iData;
}
}
*此时呢,基本操作已经全部完成了。。。



