3单链表的基本操作实现(菜单的建立)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
r->next=NULL;
}
void OutList(LinkList L)
{
LinkList P;
cout<<"\n输出单链表为:";
P=L->next;
while(P!=NULL)
{
cout<<P->data<<'\t';
P=P->next;
}
}
LinkList getelem(LinkList L,int i)
cout<<"\n\t\t7:单链表删除\n";
cout<<"\n\t\t0:退出程序";
LinkList L;
InitList(L);
cout<<"\n\t\t请选择功能:\n";
int flag=1;
while(flag)
{
int choice;
cin>>choice;
switch(choice)
break;
case 0:flag=0;
}
}
}
while(P&&P->data!=e)
P=P->next;
return P;
}
void InsertList(LinkList L,int i,elemtype x)
{Fra Baidu bibliotek
LinkList P;
P=getelem(L,i);
if(P!=NULL)
{
LinkList S;
S=new LNode;
S->data=x;
cout<<"\n找到第"<<i<<"个结点元素为:"<<P->data;
else
cout<<"\n没有找到该结点";
break;
case 5:
cout<<"\n请输入查找的元素:";
elemtype e;
cin>>e;
P=Locateelem(L,e);
if(P)
cout<<"\n元素"<<e<<"所在结点地址为:"<<P;
{
cout<<"\n\t\t1:单链表建立(头插法)\n";
cout<<"\n\t\t2:单链表建立(尾插法)\n";
cout<<"\n\t\t3:单链表输出\n";
cout<<"\n\t\t4:单链表查找(按结点找)\n";
cout<<"\n\t\t5:单链表查找(按元素找)\n";
cout<<"\n\t\t6:单链表插入\n";
}
}
void CreateList_H(LinkList &L)
{
int n;
cout<<"请输入结点的个数:";
cin>>n;
LinkList r=L;
for(int i=1;i<=n;i++)
{
LinkList P;
P=new LNode;
cin>>P->data;
r->next=P;
r=P;
}
S->next=P->next;
P->next=S;
}
}
void DeleteList(LinkList &L,int i)
{
LinkList P,q;
P=getelem(L,i-1);
if(P->next!=NULL)
{
q=P->next;
P->next=q->next;
delete(q);
}
}
void main()
#include <iostream.h>
typedef int elemtype;
typedef struct node
{
elemtype data;
struct node *next;
}LNode,*LinkList;
void InitList(LinkList &L)
{
L=new LNode;
{
case 1:
CreateList(L);
break;
case 2:
CreateList_H(L);
break;
case 3:
OutList(L);
break;
case 4:
cout<<"\n请输入查找的结点:";
int i;
LinkList P;
cin>>i;
P=getelem(L,i);
if(P)
else
cout<<"\n没有找到该元素";
break;
case 6:
cout<<"\n请输入插入的位置和元素:";
elemtype x;
cin>>i>>x;
InsertList(L,i,x);
break;
case 7:
cout<<"\n请输入删除的位置:";
cin>>i;
DeleteList(L,i);
L->next=NULL;
}
void CreateList(LinkList &L)
{
int n;
cout<<"请输入结点的个数:";
cin>>n;
for(int i=1;i<=n;i++)
{
LinkList P;
P=new LNode;
cin>>P->data;
P->next=L->next;
L->next=P;
{
LinkList P=L->next;
int j=1;
while(P&&j<i)
{
P=P->next;
j++;
}
if(j==i)
return P;
else
return NULL;
}
LinkList Locateelem(LinkList L,elemtype e)
{
LinkList P=L->next;
相关文档
最新文档