如何创建空单链表,并在单链表上通过插入A~E建立非空单链表并输出,且取第3个数据元素并输出,并在已有单链表里查找B,并输出查找结果,最后删除单链表里的第4个数据元素并输出删除后的单链表。 在devc++环境中运行。
#include<iostream>
using namespace std;
struct list//创建一个简单的链表节点
{
char ch;//只是存储一个数
list *next;//指向下一个节点的指针,链表的关键
};
int main()
{
list *head=NULL,*chain=NULL,*data=NULL;//头指针用来记录这个链表的位置,另外两个指针用来推进节点的创建和连接
//链表数据的输入
while(1)
{
data=new list;//首先分配一块内存
cin>>data->ch;//读入数据并存储
if(head==NULL)//如果是第一个,那么要让头指针指向它
head=data;
else//如果不是第一个,那么就让上一个节点的指针成员指向它
chain->next=data;
chain=data;//让这个节点成为上一个节点
data->next=NULL;//表示尾节点
if(getchar()=='\n')//如果按下回车就不读了,不然就一直装
break;
}
//链表数据的输出
data=head;//找到链表的位置
int i=1;
while(data)
{
if(i++==3)
cout<<data->ch<<' ';
data=data->next;//推进
}
data=head;//找到链表的位置
while(data)
{
if(data->ch=='B')
cout<<data->ch<<' ';
data=data->next;//推进
}
data=head;//找到链表的位置
i=1;
while(data)
{
if(i++==4)
chain=data->next;
data=data->next;//推进
}
data=head;//找到链表的位置
i=1;
while(data)
{
if(i++==3)
data->next=chain;
data=data->next;//推进
}
data=head;//找到链表的位置
while(data)
{
cout<<data->ch<<' ';
data=data->next;//推进
}
//链表内存释放
data=head;//找到链表位置
while(data)//如果不是到尾了,那就继续释放
{
chain=data->next;//先推进,不然先释放的话,后面的就找不到了
delete data;
data=chain;
}
}
数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633