#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、不懂得的地方:建立指向插入元素的新指针和指向链表的指针的关系