主题:求高人帮我修改一下链表程序
#if !defined(LINLLIST_H)
#define LINKLIST_H
#include<iostream>
using namespace std;
const int listsize=100;
struct Lnode //结构体;
{
char data;
Lnode *next;
};
class linklist
{
private:
int length;
Lnode *p;
public:
linklist(char a[],int i);
void list_insert(linklist &L,int i,int x);//插入;
void list_delete(linklist &L,int i);//删除;
void locate_list(linklist &L,int x);//查找元素x;
~linklist();
};
#endif
#include"linklist.h"
linklist::linklist(char a[listsize],int i)
{
length=i;
p=new Lnode;Lnode *r;
r=p;
for(int j=0;j<=i;j++)
{
Lnode *s;
s=new Lnode;
r->next=s;s->data=a[j];cout<<s->data<<" ";
}
r->next=0;
}
void linklist::list_insert(linklist &L,int i,int x)//在表的第i个位置,插入元素x;
{
if(i<0||i>L.length) cout<<"i值不合法,重新输入:";
Lnode *a;Lnode *s;
a=p;
int j=0;
while(a&&j<i-1)
{
a=a->next;
j++;
}
s=new Lnode;s->data=x;
s->next=a->next;
a->next=s;
}
void linklist::list_delete(linklist &L,int i)//删除表中第i个位置的元素;
{
if(i<0) cout<<"i值不合法,重新输入:";
Lnode *a;
a=p;
int j=0;
while(a->next||j<i-2)
{
a=a->next;
j++;
}
a->next=a->next->next;
delete a;
}
linklist::~linklist()
{
}
#include"linklist.h"
void main()
{
char a[listsize];
cout<<"输入元素:"<<endl;
for(int i=0;i<=5;i++)
{
char s;
cin>>s;
a[i]=s;
}
linklist L(a,5);
L.list_insert(L,3,5);
L.list_delete(L,3);
}
#define LINKLIST_H
#include<iostream>
using namespace std;
const int listsize=100;
struct Lnode //结构体;
{
char data;
Lnode *next;
};
class linklist
{
private:
int length;
Lnode *p;
public:
linklist(char a[],int i);
void list_insert(linklist &L,int i,int x);//插入;
void list_delete(linklist &L,int i);//删除;
void locate_list(linklist &L,int x);//查找元素x;
~linklist();
};
#endif
#include"linklist.h"
linklist::linklist(char a[listsize],int i)
{
length=i;
p=new Lnode;Lnode *r;
r=p;
for(int j=0;j<=i;j++)
{
Lnode *s;
s=new Lnode;
r->next=s;s->data=a[j];cout<<s->data<<" ";
}
r->next=0;
}
void linklist::list_insert(linklist &L,int i,int x)//在表的第i个位置,插入元素x;
{
if(i<0||i>L.length) cout<<"i值不合法,重新输入:";
Lnode *a;Lnode *s;
a=p;
int j=0;
while(a&&j<i-1)
{
a=a->next;
j++;
}
s=new Lnode;s->data=x;
s->next=a->next;
a->next=s;
}
void linklist::list_delete(linklist &L,int i)//删除表中第i个位置的元素;
{
if(i<0) cout<<"i值不合法,重新输入:";
Lnode *a;
a=p;
int j=0;
while(a->next||j<i-2)
{
a=a->next;
j++;
}
a->next=a->next->next;
delete a;
}
linklist::~linklist()
{
}
#include"linklist.h"
void main()
{
char a[listsize];
cout<<"输入元素:"<<endl;
for(int i=0;i<=5;i++)
{
char s;
cin>>s;
a[i]=s;
}
linklist L(a,5);
L.list_insert(L,3,5);
L.list_delete(L,3);
}