最新编排编程题 建立一个单链表,实现链表元素的定位,查找,插入,删除。数据结构编程问题.doc
文本预览下载声明
#include iostream
using namespace std;
typedef struct node
{
char data;
struct node *next;
}link;
link * get(link *l, int i)
{
link *p;int j=0;
p=l;
while((ji) (p-next!=NULL))
{p=p-next;j++;}
if(j==i)
return p;
else
return NULL;
}
link * ins (link *l, char ch,int i)
{ link *p,*s;
p=get(l,i-£±);
if(p==NULL)
coutè?“?…¥??‰èˉˉendl;
else
{
s=(link *)malloc(sizeof(link));
s-data=ch;
s-next=p-next;
p-next=s;
}
return l;
}
link * find(link *l, char ch)
{
link *p; int i=0; int j=0;
p=l;
while(p!=NULL)
{ i++;
if(p-data!=ch)
p=p-next;
else {cout??¨??¥?‰??????°?????¨???i-£±??a??????endl;
j=£±;p=p-next;
}
}
if(j!=£±)
cout??¨??¥?‰??????°????????¨?o??€§è?¨???endl;
return l;
}
link * del(link *l, int i)
{
link *p,*s;
p=get(l,i-£±);
if(p==NULL)
coutè?“?…¥??‰èˉˉendl;
else
{
s=p-next;
p-next=s-next;
free(s);
}
return l;
}
link * add(link *l )
{
link *p,*s;
coutèˉ·è?“?…¥??€??2????-—??|??°????????¥*??“??????endl;
char ch;
link *HEAD;
link *R,*P,*L;
HEAD=(link *)malloc(sizeof(link));
HEAD-next=NULL;
R=HEAD;
getchar();
ch=getchar();
while(ch!=*)
{
P=(link *)malloc(sizeof(link));
P-data=ch;P-next=NULL;
R-next=P;R=R-next;
getchar();
ch=getchar();
}
L=HEAD;
cout??“?‰?è?“?…¥????o??€§è?¨??o???endl;
P=L;P=P-next;
if(L!=NULL)
do
{coutP-data ;
P=P-next;
}while(P!=NULL);
coutendl;
p=l;
while(p-next!=NULL)
p=p-next;
s=L;
p-next=s-next;
p=l;
return l;
}
link * print(link *l)
{ int i,k;
char ch;
link *p,*q;
cout??“?‰??o??€§è?¨??o???endl;
p=l;p=p-next;
if(l!=NULL)
do
{coutp-data ;
p=p-next;
}while(p!=NULL);
coutendl;
coutèˉ·é€‰?????¨è|?????“???????;
cout £±?€???’?…?;
cout £2?€???¥?‰?;
cout 3?€????é??;
cout 4?€?????1?;
cout 0?€?退???;
coutendl;
cink;
if(k==£±)
{
coutèˉ·è?“?…¥??¨è|???’?…¥?????°????€????;
cinch;
coutèˉ·è?“?…¥??¨è|???’?…¥????????????;
cini;
p=ins(l,ch,i);
q=print(l);
}
else if(k==£2)
{
coutèˉ·è?“?…¥??¨è|???¥?‰??????°???
显示全部