LinkList.h
#include
#include
#include
#define ElemType char
using namespace std;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LinkList;
void menu(){
cout<<"1.长度 2.销毁 3.输出"<
cout<<"4.取值 5.查找 6.插入"<
cout<<"7.删除 8.退出"<
}
//头插法建表
void CreatListF(LinkList *L,ElemType a[],int n){
int i;
LinkList s;
L=(LinkList)malloc(sizeof(LinkList));
L->next=NULL;
for(i=0;i
s=(LinkList*)malloc(sizeof(LinkList));
cout<<"请输入建立的元素"<
cin>>a[i];
s->data=a[i];
s->next=L;
L=s;
}
}
//尾插法建表
void CreatListR(LinkList *L,ElemType a[],int n){
int i;
LinkList *r=L,s;
L=(LinkList)malloc(sizeof(LinkList));
for(i=0;i
s=(LinkList*)malloc(sizeof(LinkList));
cout<<"请输入建立的元素"<
cin>>a[i];
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
}
//初始化
void InitList(LinkList L){
L=(LinkList)malloc(sizeof(LinkList));
L->next=NULL;
}
//销毁
void DestoryList(LinkList *L){
int i=0;
LinkList *pre=L,*p=L->next;
while(p!=NULL){
free(pre);
pre=p;
p=p->next;
}
free(pre);
}
//判空
bool EmptyList(LinkList *L){
return (L->next==NULL);
}
//长度
int Listlength(LinkList *L){
int i=0;
LinkList *p=L;
while(p->next!=NULL){
i++;
p=p->next;
}
return (i);
}
//输出
void DispList(LinkList *L){
LinkList *p=L->next;
while(p!=NULL){
cout<data<
}
cout<<" "<
}
//取值
bool GetElem(LinkList *L,int n){
int i=0;
ElemType e;
LinkList *p=L;
while(i
i++;
p=p->next;
}
if(p==NULL){
return false;
}else{
e=p->data;
return true;
}
cin>>e;
}
//查找
int LocateElem(LinkList *L,ElemType e){
int i=1;
LinkList *p=L->next;
while(p!=NULL&&p->data!=e){
i++;
p=p->next;
}
if(p=NULL){
return 1;
}else{
return (i);
}
}
//插入
bool ListInsert(LinkList *L,int i,ElemType e){
int j=0;
LinkList *p=L,*s;
while(j
j++;
p=p->next;
}
if(p==NULL){
return false;
}else{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=e;
s->next=p->next;
p->next=s;
return true;
}
DispList(L);
}
//删除
bool ListDelete(LinkList *L,int i){
int j=0;
ElemType e;
LinkList *p=L,*q=L->next;
while(j
j++;
p=p->next;
q=q->next;
}
if(p==NULL){
return false;
}else{
if(q==NULL){
return false;
}
e=q->data;
p->next=q->next;
free(q);
}
DispList(L);
}
#include
#include "LinkList.h"
using namespace std;
int main() {
int b,b1,n;
char a[1000];
LinkList L;
ElemType e;
while(1){
cout<<"请选择建表方式:1.头插法 2.尾插法"<>b;
if(b=1){
cout<<"请输入建立多少个元素:"<>b1;
InitList(&L);
CreatListF(&L,a,b1);
}else{
cout<<"请输入建立多少个元素:"<>b1;
InitList(&L);
CreatListR(&L,a,b1);
}
cout<<" "<"请输入1-8:"<>n;
switch(n){
case 1:
cout<break;
case 2:
DestoryList(&L);
break;
case 3:
DispList(&L);
break;
case 4:
int b2;
cout<<"请输入取第几个元素的值:"<>b2;
GetElem(&L,b2);
break;
case 5:
cout<<"请输入查找的元素:"<>e;
LocateElem(&L,e);
break;
case 6:
int b3;
cout<<"请输入在什么位置插入什么元素:"<>b3>>e;
ListInsert(&L,b3,e);
break;
case 7:
int b4;
cout<<"请输入删除第几个元素:"<>b4;
ListDelete(&L,b4);
break;
default:
break;
}
}
return 0;
}
你什么问题呀