- 链表的创建
- 链表的遍历
- 链表节点的添加
- 链表节点的删除
链表的创建
SNode* pNewNode = new SNode(); //创建新节点
cout << "请输入ID和名字" << endl;
cin >> pNewNode->nID >> pNewNode->strName;
pTailNode->pNext = pNewNode; //把创建的节点接到尾部(接)
pTailNode = pNewNode; //将节点换为新的尾部(换)
//从第一节开始跟随(老师版)
Snake* pPreNode = pHead;
for (Snake* pCurNode = pHead->pNext; pCurNode; pCurNode = pCurNode->pNext)
{
pCurNode->backup();
pCurNode->nSnakeRow = pPreNode->nSnakeRowBk;
pCurNode->nSnakeCol = pPreNode->nSnakeColBk;
pPreNode = pPreNode->pNext; //pPreNode = pCurNode;
}
Snake* pPreNode = pHead; //创建前一个指针从头开始
Snake* pCurNode = pHead->pNext; //创建当前指针指向 前一个指针的 下一个节点
while (pCurNode) //如果当前指针存在:最后一个指针
{
pCurNode->backup(); //先备份当前坐标:用于给后面的使用
//跟随
pCurNode->nSnakeRow = pPreNode->nSnakeRowBk; //把前一节的备份坐标给当前节点
pCurNode->nSnakeCol = pPreNode->nSnakeColBk;
//指针往后移
pPreNode = pPreNode->pNext;
pCurNode = pCurNode->pNext;
}
链表的遍历
//创建一个指针用于遍历输出
SNode* pCurNode = g_pHead;
while (pCurNode