1、有两个线性表 LA 和 LB ,求一个新的线性表 A=A∪B。
(1)顺序表
Void Bingji(List LA, &LB,int m, n)
{
int i,j;
int k=n;
ElemType x,y;
for(i=1; i<=m; i++)
{
x=LA[i-1]
for(j=1;j<=n;j++)
{
y=LB[j-1]
if(x==y)
break;
LB[k]=LA[i];
k++;
}
}
(2)链表
Void Bingji(List LA, &LB,int m, n)
{
int i,j;
int k=n;
ElemType x,y;
for(i=1; i<=m; i++)
{
ElemType *p; p=LA; x=p.data; p++;
for(j=1;j<=n;j++)
{
ElemType *q; q=LB; y=q.data; q++;
if(x==y)
break;
s.data=x; s.next=p.next; p.next=s;
k++;
}
}
3、头插法建立链表
linklist creatlist(int a[],int n)
{ int data;
linklist head;
listnode *p
head=NULL;
for(i=0;i<n;i++){
p=(listnode*)malloc(sizeof(listnode));
p->data=a[i];
p–>next=head;
head=p;
}
return(head);
}
4、尾插法建立链表
linklist creater(char a[],int n )
{
linklist head;
listnode *p,*r;
head=NULL;r=NULL;
while(i<n){
p=(listnode *)malloc(sizeof(listnode));
p–>data=a[i++];
if(head==NULL) head=p;
else r–>next=p;
r=p;
}
if (r!=NULL) r–>next=NULL; return(head); }
5、单链表逆置
void reverse(LinkList &L){ p=L->next;
if(p=NULL|| p->next=NULL)
return OK;
while(p->next!=NULL)
{ q= p->next;
p->next=q->next;
q->next=L->next;
L->next=q;
}
return OK;