单链表结点查找
来源:互联网 发布:python Image.new 编辑:程序博客网 时间:2024/05/18 09:16
#include <iostream>
using namespace std;
typedef class List
{
public:
int num;
char name[10];
class List* next;
}Node,*Link;
//创建链表
Link Create_List(Link pHead)
{
int n;
cout<<"请输入学生人数:";
cin>>n;
//创建头结点
pHead=new Node;
if(!pHead)
{
cout<<"Memory allocate failed\n";
exit(-1);
}
cout<<"\n请输入编号:";
cin>>pHead->num;
cout<<"请输入姓名:";
cin>>pHead->name;
pHead->next=NULL;
//创建剩余结点
Link Pointer=pHead;
for(int i=1;i<n;i++)
{
Link newNode=new Node;
if(!newNode)
{
cout<<"Memory allocate failed\n";
exit(-1);
}
cout<<"请输入编号:";
cin>>newNode->num;
cout<<"请输入姓名:";
cin>>newNode->name;
newNode->next=NULL;
Pointer->next=newNode;
Pointer=newNode;
}
return pHead;
}
//查找链表结点
Link Find_List(Link pHead,int Key)
{
Link Pointer=pHead;
while(NULL!=Pointer)
{
if(Pointer->num==Key)
return Pointer;
Pointer=Pointer->next;
}
return Pointer;
}
//遍历输出链表
void Print_List(Link pHead)
{
cout<<"\n编号\t姓名\n============"<<endl;
Link Pointer=pHead;
while(Pointer!=NULL)
{
cout<<" "<<Pointer->num<<"\t"<<Pointer->name<<endl;
Pointer=Pointer->next;
}
}
//释放链表
void Free_List(Link pHead)
{
while(pHead!=NULL)
{
Link Pointer=pHead;
pHead=pHead->next;
delete Pointer;
}
}
int main()
{
Link pHead=new Node;
if(!pHead)
{
cout<<"Memory allocate failed\n";
exit(-1);
}
//创建链表
pHead=Create_List(pHead);
//遍历输出链表
Print_List(pHead);
//查找结点
while(1)
{
int key;
cout<<"\n请输入要查找的学生编号(输入-1结束查找):";
cin>>key;
if(key!=-1)
{
Link Pointer=Find_List(pHead,key);
if(!Pointer)
{
cout<<"\n没有找到!\n\n";
}
else
{
cout<<"\n编号\t姓名\n============"<<endl;
cout<<" "<<Pointer->num<<"\t"<<Pointer->name<<"\n\n";
}
}
else
exit(-1);
}
//释放链表
Free_List(pHead);
return 0;
}
- 单链表结点查找
- 单链表实现查找中间结点
- 查找单链表的第k个结点
- 单链表操作之查找中间结点
- 单链表(不含头结点)--尾插,查找
- C语言--单链表创建、求长度、查找前驱结点、删除结点
- 查找单链表中倒数第k个结点||旋转单链表
- 查找单链表中的倒数第m个结点
- 线性时间查找两个单链表的交叉结点
- 快速查找长度未知的单链表的中间结点
- 单链表的逆置和中间结点的查找
- 单链表的创建、插入、删除、销毁以及查找中间结点
- 查找并输出单链表的倒数第k个结点
- 数据结构(四)之单链表查找中间结点
- 数据结构(四)之单链表查找中间结点
- 查找线索树的结点
- 二叉数查找指定结点
- C++二叉排序树之查找结点
- The requested operation requires elevation问题解决
- 自动对焦算法
- SYS_REFCURSOR
- javascript之选项左右移动
- 拖动窗体的任意区域移动窗体
- 单链表结点查找
- Dijkstra最短路径算法
- c++中静态const型map成员变量的初始化
- Delphi组件开发-在窗体标题栏添加按钮
- DIV CSS隐藏内容样式方法大全
- 多态
- sed之G、H、g、h使用
- Delphi自动提交网页表单和获取框架网页源码
- VS2012开发.net程序,release版本不能使用Reportviewer的解决办法