64,654
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
struct Node
{
int num;
Node* pNext;
};
Node* pHead = NULL;
Node* pEnd = NULL;
void CreatList(int n)//创建链表
{
Node* temp = new Node;
temp->num = n;
temp->pNext = NULL;
if(!pHead)
{
pHead = temp;
}
else
{
pEnd->pNext = temp;
}
pEnd = temp;
}
void DelList(int n)
{
Node* temp = pHead;
while(temp)//当节点不为空
{
if(temp!=pEnd)//如果不是尾结点,temp = temp->pNext
{
if(temp->num == n)//找到则删除
{
if(temp == pHead)//如果删除的是头结点
{
pHead = temp->pNext;
delete temp;
}
else //如果删除的是中间节点
{
Node* TempLast;
Node* LinShi;
TempLast->pNext = temp;
LinShi = temp->pNext;
TempLast->pNext = LinShi;
delete temp;
}
}
else//如果删除的是尾节点
{
Node* LinShi;
LinShi->pNext = temp;
pEnd = LinShi;
delete temp;
}
}
temp = temp->pNext;
}
}
void ShowList()
{
Node* temp = pHead;
while(temp)
{
cout<<temp->num<<" ";
temp = temp->pNext;
}
cout<<endl;
}
int main()
{
CreatList(1);
CreatList(2);
CreatList(3);
CreatList(4);
CreatList(5);
CreatList(6);
ShowList();
DelList(1);
ShowList();
system("pause");
return 0;
}
else if(temp == pEnd)//如果删除的是尾节点
{
tempBefore->pNext = temp;
pEnd = tempBefore;
delete temp;
break;
}
if(temp == pHead)//如果删除的是头结点
{
pHead = temp->pNext;
delete temp;
break;
}
struct Node
{
int num;
Node* pNext;
};
Node* pHead = NULL;
Node* pEnd = NULL;
void CreatList(int n)//创建链表
{
Node* temp = new Node;
temp->num = n;
temp->pNext = NULL;
if(!pHead)
{
pHead = temp;
}
else
{
pEnd->pNext = temp;
}
pEnd = temp;
}
void DelList(int n)
{
Node* temp = pHead; // 指定需要删除的节点
Node* tempBefor=NULL; // 指定需要删除的节点的前一个
while(temp)//当节点不为空
{
if(temp!=pEnd)//如果不是尾结点,temp = temp->pNext
{
if(temp->num == n)//找到则删除
{
if(temp == pHead)//如果删除的是头结点
{
pHead = temp->pNext;
delete temp;
break;
}
else //如果删除的是中间节点
{
tempBefor->pNext=temp->pNext;
delete temp;
break;
}
}
else//如果删除的是尾节点
{
Node* LinShi;
LinShi->pNext = temp;
pEnd = LinShi;
delete temp;
break;
}
}
//没找到则继续
tempBefor=temp;
temp = temp->pNext;
}
}
void ShowList()
{
Node* temp = pHead;
while(temp)
{
cout<<temp->num<<" ";
temp = temp->pNext;
}
cout<<endl;
}
struct Node#include <iostream>
using namespace std;
struct Node
{
int num;
Node* pNext;
};
Node* pHead = NULL;
Node* pEnd = NULL;
void CreatList(int n)//创建链表
{
Node* temp = new Node;
temp->num = n;
temp->pNext = NULL;
if(!pHead)
{
pHead = temp;
}
else
{
pEnd->pNext = temp;
}
pEnd = temp;
}
void DelList(int n)
{
Node* temp = pHead;
while(temp)//当节点不为空
{
if(temp!=pEnd)//如果不是尾结点,temp = temp->pNext
{
if(temp->num == n)//找到则删除
{
if(temp == pHead)//如果删除的是头结点
{
pHead = temp->pNext;
temp = temp->pNext;
delete temp;
}
else //如果删除的是中间节点
{
Node* TempLast;
Node* LinShi;
TempLast->pNext = temp;
LinShi = temp->pNext;
TempLast->pNext = LinShi;
temp = temp->pNext;
delete temp;
}
}
}
else//如果删除的是尾节点
{
Node* LinShi;
LinShi->pNext = temp;
pEnd = LinShi;
temp = temp->pNext;
delete temp;
}
}
}
void ShowList()
{
Node* temp = pHead;
while(temp)
{
cout<<temp->num<<" ";
temp = temp->pNext;
}
cout<<endl;
}
int main()
{
CreatList(1);
CreatList(2);
CreatList(3);
CreatList(4);
CreatList(5);
CreatList(6);
ShowList();
DelList(1);
ShowList();
system("pause");
return 0;
}
#include <iostream>
using namespace std;
struct Node
{
int num;
Node* pNext;
};
Node* pHead = NULL;
Node* pEnd = NULL;
void CreatList(int n)//创建链表
{
Node* temp = new Node;
temp->num = n;
temp->pNext = NULL;
if(!pHead)
{
pHead = temp;
}
else
{
pEnd->pNext = temp;
}
pEnd = temp;
}
void DelList(int n)
{
Node* temp = pHead;
while(temp)//当节点不为空
{
while(temp!=NULL)//如果不是尾结点,temp = temp->pNext
{
if(temp->num == n)//找到则删除
{
if(temp == pHead)//如果删除的是头结点
{
pHead = temp->pNext;
delete temp;
}
else if(temp == pEnd)//如果删除的是尾节点
{
Node* LinShi;
LinShi->pNext = temp;
pEnd = LinShi;
delete temp;
}
else //如果删除的是中间节点
{
Node* TempLast;
Node* LinShi;
TempLast->pNext = temp;
LinShi = temp->pNext;
TempLast->pNext = LinShi;
delete temp;
}
}
temp=temp->pNext;
}
}
}
void ShowList()
{
Node* temp = pHead;
while(temp)
{
cout<<temp->num<<" ";
temp = temp->pNext;
}
cout<<endl;
}
int main()
{
CreatList(1);
CreatList(2);
CreatList(3);
CreatList(4);
CreatList(5);
CreatList(6);
ShowList();
DelList(1);
ShowList();
return 0;
}
temp = temp->pNext;//你这儿错了,上边都把temp删掉了,这儿肯定出错啊