#1、代码1简介:顺序表删除重复元素
##1.1、代码1:
void CreateSqList(List &L,int a[],int n)
{
int i;
L=new SqList;
L->length=n;
for(i=0;i<n;i++)
{
L->data[i]=a[i];
}
}
void DispSqList(List L)
{
int i,j;
j=L->length;
for(i=0;i<j;i++)
{
if(i==j-1)
{
cout<<L->data[i];
}
else
cout<<L->data[i]<<" ";
}
}
void DelSameNode(List &L)
{
int i,j,k;
for(i=0;i<L->length;i++)
{
for(j=i+1;j<L->length;j++)
{
if(L->data[i]==L->data[j])
{
for(k=j;k<L->length-1;k++)
{
L->data[k]=L->data[k+1];
}
L->length-=1;
}
}
}
if(L->length==2)
{
if(L->data[0]==L->data[1])
{
L->length--;
}
}
}
##1.2、不懂得的地方:void DelSameNode(List &L) 函数的for循环兼顾找出需要删除的元素和删除的遍历重新排序,在写的过程中遇到段错误(L->length溢出)
#2.代码2简介:尾插法建链表 (15 分)
##2.1、代码2:
void CreateListR(LinkList &L, int n)
{
L=new LNode;
L->next=NULL;
int i;
LinkList p,q;
if(L->next=NULL)
{
cout<<"空链表!"<<endl;
return;
}
q=L;
for(i=0;i<n;i++)
{
p=new LNode;
p->next=NULL;
cin>>p->data;
q->next=p;
q=p;
}
}
##2.2、不懂得的地方:建立指向插入元素的新指针和指向链表的指针的关系
浙公网安备 33010602011771号