| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2011 人关注过本帖
标题:关于 线性表的问题
只看楼主 加入收藏
zrf625278699
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-10-14
收藏
 问题点数:0 回复次数:14 
关于 线性表的问题
书上的一些关于线性表操作的都不是完整的程序   谁能帮我编一个完整的C的线性表操作  比如 插入 或删除   
一定要完整的  包括定义啊  赋值什么的。。。。。。。。。
我自己看书  不知道怎么编  谢谢
收到的鲜花
  • missiyou2008-10-19 22:56 送鲜花  21朵  
搜索更多相关主题的帖子: 线性 
2008-10-19 16:38
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:0 
去图书馆找实验指导书吧 ,什么操作都有
收到的鲜花
  • missiyou2008-10-19 22:56 送鲜花  47朵   附言:我很赞同
2008-10-19 17:08
zrf625278699
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-10-14
收藏
得分:0 
可是不全啊
收到的鲜花
  • missiyou2008-10-19 22:59 送鲜花  49朵  
2008-10-19 19:33
zrf625278699
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-10-14
收藏
得分:0 
帮帮忙啊
收到的鲜花
  • missiyou2008-10-19 22:59 送鲜花  11朵  
2008-10-19 20:43
elegant87
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-1-15
收藏
得分:0 
http://hi.baidu.com/%B3%CB%B7%E7%CC%A4%C0%CB2008/blog/item/dd333860e2d66042eaf8f860.html
看看这个吧!很全的!
收到的鲜花
  • missiyou2008-10-19 22:56 送鲜花  31朵  
2008-10-19 20:59
yyan1120
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-2-21
收藏
得分:0 
线性顺序表总程序(创建,插入,2个并1个)

#include <stdio.h>
#include <malloc.h>

#define null 0
#define  zongchicun 100
#define  meicijia   10
#define  error 0
#define  ok 1

typedef int  zhengshu;

typedef struct {
zhengshu  *elem;
int muqiansize;
int zongsize;
}node;

void main()
{int i,n,j,k;
int  creat(node &l);
int ascanf(node &l,int i);
void charu(node &l,int j,int k);
void zuhe(node &lc,node la,node lb);
node p,la,lb,lc;
creat(p);
creat(la);
creat(lb);

printf("请输入p几个数字");
scanf("%d",&n);
for(i=0;i<n;i++)
{
ascanf(p,i);}
printf("\n");
for(i=0;i<p.muqiansize;i++)
{printf("%d ",p.elem[i]);}
printf("\n");
printf("请输入要插入的位置\n");
scanf("%d",&j);
printf("要插入的数字\n");
scanf("%d",&k);
charu(p,j,k);
for(i=0;i<p.muqiansize;i++)
{printf("%d ",p.elem[i]);}
printf("\n\n");
printf("请输入la几个数字");
scanf("%d",&n);
printf("请输入la数字\n");
for(i=0;i<n;i++)
{
ascanf(la,i);}
printf("\n\n");
printf("请输入lb几个数字");
scanf("%d",&n);
printf("请输入lb数字\n");
for(i=0;i<n;i++)
{
ascanf(lb,i);}
for(i=0;i<la.muqiansize;i++)
{printf("%d ",la.elem[i]);}
printf("\n\n");
for(i=0;i<lb.muqiansize;i++)
{printf("%d ",lb.elem[i]);}
printf("\n\n");
zuhe(lc,la,lb);
for(i=0;i<lc.muqiansize;i++)
{printf("%d ",lc.elem[i]);}
printf("\n\n");


}

int creat(node &l)
{l.elem=(zhengshu*)malloc(zongchicun*sizeof(zhengshu));
if(!l.elem) return error;
l.muqiansize=0;
l.zongsize=100;
return ok;
}

int ascanf(node &l,int i)
{zhengshu *newbase;
int k;
if(l.muqiansize>=l.zongsize)
{newbase=(zhengshu *)realloc(l.elem,(l.zongsize+meicijia)*sizeof(zhengshu));
l.elem=newbase;
l.zongsize+=meicijia;}
printf("请输入编号");
scanf("%d",&k);
l.elem[i]=k;
l.muqiansize+=1;
return ok;}

void charu(node &l,int j,int k)
{int i,n;
zhengshu *newbase;
if(l.muqiansize>=l.zongsize)
{newbase=(zhengshu *)realloc(l.elem,(l.zongsize+meicijia)*sizeof(zhengshu));
l.elem=newbase;
l.zongsize+=meicijia;}
n=l.muqiansize;
for(i=n;i>=j;i--)
l.elem[i]=l.elem[i-1];
l.elem[i]=k;
l.muqiansize+=1;
}
void zuhe(node &lc,node la,node lb)
{int i=0,j=0,k=0;
lc.muqiansize=la.muqiansize+lb.muqiansize;
lc.elem=(zhengshu*)malloc(lc.muqiansize*sizeof(zhengshu));
while(i<la.muqiansize&&j<lb.muqiansize)
if(la.elem[i]<lb.elem[j]){lc.elem[k]=la.elem[i];i++;k++;}
else if(la.elem[i]==lb.elem[j]) {lc.elem[k]=la.elem[i];i++;j++;k++;}
else  {lc.elem[k]=lb.elem[j];j++;k++;}

while(i<la.muqiansize)
{lc.elem[k]=la.elem[i];i++;k++;}

while(j<lb.muqiansize)
{lc.elem[k]=lb.elem[j];j++;k++;}
}
收到的鲜花
  • missiyou2008-10-19 22:56 送鲜花  49朵  
2008-10-19 21:02
yyan1120
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-2-21
收藏
得分:0 
线性链表 部分程序
#include <stdio.h>
#include <malloc.h>

#define null 0
#define  error 0
#define  ok 1

typedef struct lnode
{int m;
lnode *next;
}lnode;

void main()
{void creat(lnode *l);
void shuru(lnode *l,int n);
void shanchu(lnode *l,int n);
void charu(lnode *l,int n,int k);
void hebing(lnode*la,lnode*lb,lnode*lc);
void lianjie(lnode*ld,lnode*le);
void shanchuhebing(lnode*la,lnode *lb,int i,int j,int len);
void dayuxiaoyushanchu(lnode *lv,int mink,int mark);
void nixu(lnode *lx);
void shanxiang(lnode *ly);
lnode *head,*la,*lb,*lc,*v,*ld,*le,*lv,*lx,*ly;
int n,i,j,k,len,mink,mark;
head=(lnode*)malloc(sizeof(lnode));
head->next=null;
la=(lnode*)malloc(sizeof(lnode));
la->next=null;
lb=(lnode*)malloc(sizeof(lnode));
lb->next=null;
le=(lnode*)malloc(sizeof(lnode));
le->next=null;
ld=(lnode*)malloc(sizeof(lnode));
ld->next=null;
lv=(lnode*)malloc(sizeof(lnode));
lv->next=null;
lx=(lnode*)malloc(sizeof(lnode));
lx->next=null;
ly=(lnode*)malloc(sizeof(lnode));
ly->next=null;
lc=la;
printf("删除相同元素部分:\n");  /*删除相同元素部分:*/
printf("请输入ly几位数字\n");
scanf("%d",&n);
printf("请输入ly数字:\n");
for(i=0;i<n;i++)
creat(ly);                          /*创建头列表*/
shuru(ly,n);  
shanxiang(ly);


}


void creat(lnode *l)    /*创建头列表*/
{lnode *k;
k=(lnode*)malloc(sizeof(lnode));
k->next=l->next;
l->next=k;}

void shuru(lnode *l,int n)   /*列表负值*/
{int i;
lnode *p;
p=l->next;
for(i=0;i<n;i++)
{
scanf("%d",&p->m);
p=p->next;}}

void shanchu(lnode *l,int n) /*删除列表某个数*/
{lnode *p,*q,*h;
int i;
p=l->next;
q=l;
for(i=1;i<n;i++)
{p=p->next;q=q->next;}
h=p;p=p->next;free(h);
q->next=p;}

void charu(lnode *l,int n,int k)/*插入列表某个数*/
{lnode *p,*v,*q;
int i;
p=l->next;
q=l;
v=(lnode*)malloc(sizeof(lnode));
v->m=k;
for(i=1;i<n;i++)
{p=p->next;q=q->next;}
q->next=v;
v->next=p;}

void hebing(lnode*la,lnode*lb,lnode*lc)/*2个表合并部分*/
{lnode *p1,*p2,*p3;
p1=la->next;
p2=lb->next;
if(p1->m<p2->m)  {lc->next=p1;p3=p1;p1=p1->next;}
else {lc->next=p2;p3=p2;p2=p2->next;}
while(p1!=null&&p2!=null)
{if(p1->m<p2->m)  {p3->next=p1;p3=p3->next;p1=p1->next;}
else if(p1->m==p2->m) {p3->next=p1;p1=p1->next;p2=p2->next;}
else  {p3->next=p2;p3=p3->next;p2=p2->next;}}
if(p1!=null)
p3->next=p1;
else p3->next=p2;}

void lianjie(lnode*ld,lnode*le)  /*将ld,le连接*/
{lnode *p,*q;
p=ld->next;
q=ld;
while(p!=null)
{p=p->next;q=q->next;}
q->next=le->next;}

void shanchuhebing(lnode*la,lnode *lb,int i,int j,int len) /*从la中删除元素插入到lb*/
{lnode *p,*q,*l,*m,*v;
int n;
p=la->next;
q=la;
m=lb->next;
v=lb;
for(n=1;n<i;n++)
{p=p->next;q=q->next;}
l=p;
for(n=1;n<len;n++)
p=p->next;
q->next=p->next;
for(n=1;n<j;n++)
{m=m->next;v=v->next;}
v->next=l;
p->next=m;}



void dayuxiaoyushanchu(lnode *lv,int mink,int mark)  /*删除大于mink小于maxk的元素部分*/
{lnode *p,*q,*h;
p=lv->next;
q=lv;
while(p->m<=mink)
{p=p->next;q=q->next;}
h=p;
while(p->m<mark)
{p=p->next;free(h);h=p;}
q->next=p;}


void nixu(lnode *lx)  /*对单链表的逆置部分*/
{lnode *p,*q,*l;
p=lx->next;
q=lx->next->next;
p->next=null;
while(q!=null)
{l=q;
q=q->next;
l->next=p;
p=l;}
lx->next=p;
}

void shanxiang(lnode *ly)
{lnode *p,*q,*h;
p=ly->next;
q=ly->next->next;
while(q!=null)
{while(p->m==q->m&&q!=null) {p->next=q-next;h=q;q=q->next;free(h);}
if(q==null) break;
else {p=p->next, q=q->next;}}
收到的鲜花
  • missiyou2008-10-19 22:57 送鲜花  45朵  
2008-10-19 21:03
yyan1120
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-2-21
收藏
得分:0 
不好意思 前面这个发错了  
#include <stdio.h>
#include <malloc.h>

#define null 0
#define  error 0
#define  ok 1

typedef struct lnode
{int m;
lnode *next;
}lnode;

void main()
{void creat(lnode *l);
void shuru(lnode *l,int n);
void shanchu(lnode *l,int n);
void charu(lnode *l,int n,int k);
void hebing(lnode*la,lnode*lb,lnode*lc);
void lianjie(lnode*ld,lnode*le);
void shanchuhebing(lnode*la,lnode *lb,int i,int j,int len);
void dayuxiaoyushanchu(lnode *lv,int mink,int mark);
void nixu(lnode *lx);
void shanxiang(lnode *ly);
void jiaochafang(lnode *lm,lnode *ln);
void dizenghebing(lnode *lg,lnode *lh,lnode *lz);
void jiaoji(lnode *ha,lnode *hb,lnode *hc);
lnode *head,*la,*v,*lb,*lc,*ld,*le,*lv,*lx,*ly,*lm,*ln,*lf,*lz,*lg,*lh,*ha,*hb,*hc;
int n,i,k,l,len,mink,mark,j;
head=(lnode*)malloc(sizeof(lnode));
head->next=null;
la=(lnode*)malloc(sizeof(lnode));
la->next=null;
lb=(lnode*)malloc(sizeof(lnode));
lb->next=null;
le=(lnode*)malloc(sizeof(lnode));
le->next=null;
ld=(lnode*)malloc(sizeof(lnode));
ld->next=null;
lv=(lnode*)malloc(sizeof(lnode));
lv->next=null;
lx=(lnode*)malloc(sizeof(lnode));
lx->next=null;
ly=(lnode*)malloc(sizeof(lnode));
ly->next=null;
lm=(lnode*)malloc(sizeof(lnode));
lm->next=null;
ln=(lnode*)malloc(sizeof(lnode));
ln->next=null;
lg=(lnode*)malloc(sizeof(lnode));
lg->next=null;
lh=(lnode*)malloc(sizeof(lnode));
lh->next=null;
lz=(lnode*)malloc(sizeof(lnode));
lz->next=null;
ha=(lnode*)malloc(sizeof(lnode));
ha->next=null;
hb=(lnode*)malloc(sizeof(lnode));
hb->next=null;
hc=(lnode*)malloc(sizeof(lnode));
hc->next=null;
lc=la;
printf("输入部分:\n\n");
printf("请输入几位数字:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
creat(head);    /*创建头列表*/
shuru(head,n);   /*列表负值*/
v=head->next;
while(v!=null)
{printf("%d",v->m);
v=v->next;}
printf("\n\n\n\n");
printf("删除部分:\n\n");
printf("输入要删除的位置\n");
scanf("%d",&n);
shanchu(head, n);
v=head->next;
while(v!=null)
{printf("%d",v->m);
v=v->next;}
printf("\n\n\n\n");
printf("插入部分:\n\n");
printf("输入要插入的位置\n");
scanf("%d",&n);
printf("输入要插入的数\n");
scanf("%d",&k);
charu(head,n,k);
v=head->next;
while(v!=null)
{printf("%d",v->m);
v=v->next;}
printf("\n\n\n\n");
printf("将la,lb按非递减放入lc:\n\n");  /*2个表合并部分*/
printf("请输入la几位数字\n");
scanf("%d",&n);
printf("请输入la数字:\n");
for(i=0;i<n;i++)
creat(la);                          /*创建头列表*/
shuru(la,n);                        /*列表负值*/
printf("\n\n");
printf("请输入lb几位数字:\n");
scanf("%d",&n);
printf("请输入lb数字\n");
for(i=0;i<n;i++)
creat(lb);                      /*创建头列表*/
shuru(lb,n);                    /*列表负值*/
hebing(la,lb,lc);
lc=lc->next;
while(lc!=null)
{printf("%d",lc->m);
lc=lc->next;}
printf("将ld,le连接\n\n");      /*将ld,le连接*/
printf("请输入ld几位数字:\n");
scanf("%d",&n);
printf("请输入ld数字\n");
for(i=0;i<n;i++)
creat(ld);                      /*创建头列表*/
shuru(ld,n);
printf("\n\n");
printf("请输入ld几位数字:\n");
scanf("%d",&n);
printf("请输入ld数字\n");
for(i=0;i<n;i++)
creat(le);                      /*创建头列表*/
shuru(le,n);
printf("\n\n");
lianjie(ld,le);
ld=ld->next;
while(ld!=null)
{printf("%d",ld->m);
ld=ld->next;}
printf("\n\n");
printf("从la中删除元素插入到lb\n");   /*从la中删除元素插入到lb*/
printf("请输入la几位数字\n");
scanf("%d",&n);
printf("请输入la数字:\n");
for(i=0;i<n;i++)
creat(la);                          /*创建头列表*/
shuru(la,n);                        /*列表负值*/
printf("\n\n");
printf("请输入lb几位数字:\n");
scanf("%d",&n);
printf("请输入lb数字\n");
for(i=0;i<n;i++)
creat(lb);                      /*创建头列表*/
shuru(lb,n);                    /*列表负值*/
printf("请输入la要删除的第i个位置:\n");
scanf("%d",&i);
printf("请输入la要删除的len个元素:\n");
scanf("%d",&len);
printf("请输入lb要插入的第j个位置:\n");
scanf("%d",&j);
shanchuhebing(la,lb,i,j,len);
la=la->next;
lb=lb->next;
printf("la:");
while(la!=null)
{printf("%d",la->m);
la=la->next;}
printf("\n");
printf("lb:");
while(lb!=null)
{printf("%d",lb->m);
lb=lb->next;}
printf("\n\n");
printf("删除大于mink小于maxk的元素部分:\n"); /*删除大于mink小于maxk的元素部分*/
printf("请输入lv几位数字:\n");
scanf("%d",&n);
printf("请输入lv数字\n");
for(i=0;i<n;i++)
creat(lv);                      /*创建头列表*/
shuru(lv,n);                    /*列表负值*/
printf("请输入大于mink的数:\n");
scanf("%d",&mink);
printf("请输入小于mark的数:\n");
scanf("%d",&mark);
dayuxiaoyushanchu(lv,mink,mark);
lv=lv->next;
printf("lv:");
while(lv!=null)
{printf("%d",lv->m);
lv=lv->next;}
printf("\n\n");
printf("对单链表的逆置部分:\n"); /*对单链表的逆置部分*/
printf("请输入lx几位数字\n");
scanf("%d",&n);
printf("请输入lx数字:\n");
for(i=0;i<n;i++)
creat(lx);                          /*创建头列表*/
shuru(lx,n);  
nixu(lx);
lx=lx->next;
while(lx!=null)
{printf("%d",lx->m);
lx=lx->next;}
printf("\n\n");
printf("删除相同元素部分:\n");  /*删除相同元素部分:*/
printf("请输入ly几位数字\n");
scanf("%d",&n);
printf("请输入ly数字:\n");
for(i=0;i<n;i++)
creat(ly);                          /*创建头列表*/
shuru(ly,n);  
shanxiang(ly);
printf("交叉放入部分:\n\n");     /*交叉放入部分:*/
printf("请输入lm几位数字:\n");
scanf("%d",&n);
printf("请输入lm数字\n");
for(i=0;i<n;i++)
creat(lm);                      /*创建头列表*/
shuru(lm,n);                    /*列表负值*/
printf("请输入ln几位数字:\n");
scanf("%d",&n);
printf("请输入ln数字\n");
for(i=0;i<n;i++)
creat(ln);                      /*创建头列表*/
shuru(ln,n);                    /*列表负值*/
jiaochafang(lm,ln);           
lf=lm;
lf=lf->next;
while(lf!=null)
{printf("%d",lf->m);
lf=lf->next;}
printf("\n\n");
printf("两个递增链表合并成一个递减链表部分:\n"); /*两个递增链表合并成一个递减链表部分:*/
printf("请输入lg几位数字\n");
scanf("%d",&n);
printf("请输入lg数字:\n");
for(i=0;i<n;i++)
creat(lg);                          /*创建头列表*/
shuru(lg,n);                        /*列表负值*/
printf("\n\n");
printf("请输入lh几位数字\n");
scanf("%d",&n);
printf("请输入lh数字:\n");
for(i=0;i<n;i++)
creat(lh);                          /*创建头列表*/
shuru(lh,n);                        /*列表负值*/
printf("\n\n");
dizenghebing(lg,lh,lz);
lz=lz->next;
while(lz!=null)
{printf("%d",lz->m);
lz=lz->next;}
printf("\n\n");
printf("求2个表ha,hb的交集部分:\n");   /*求2个表ha,hb的交集部分*/
printf("请输入ha几位数字:\n");
scanf("%d",&n);
printf("请输入ha数字\n");
for(i=0;i<n;i++)
creat(ha);                      /*创建头列表*/
shuru(ha,n);
printf("请输入hb几位数字:\n");
scanf("%d",&n);
printf("请输入hb数字\n");
for(i=0;i<n;i++)
creat(hb);                      /*创建头列表*/
shuru(hb,n);
jiaoji(ha,hb,hc);
hc=hc->next;
while(hc!=null)
{printf("%d",hc->m);
hc=hc->next;}
printf("\n\n");
}


void creat(lnode *l)    /*创建头列表*/
{lnode *k;
k=(lnode*)malloc(sizeof(lnode));
k->next=l->next;
l->next=k;}

void shuru(lnode *l,int n)   /*列表负值*/
{int i;
lnode *p;
p=l->next;
for(i=0;i<n;i++)
{
scanf("%d",&p->m);
p=p->next;}}

void shanchu(lnode *l,int n) /*删除列表某个数*/
{lnode *p,*q,*h;
int i;
p=l->next;
q=l;
for(i=1;i<n;i++)
{p=p->next;q=q->next;}
h=p;p=p->next;free(h);
q->next=p;}

void charu(lnode *l,int n,int k)/*插入列表某个数*/
{lnode *p,*v,*q;
int i;
p=l->next;
q=l;
v=(lnode*)malloc(sizeof(lnode));
v->m=k;
for(i=1;i<n;i++)
{p=p->next;q=q->next;}
q->next=v;
v->next=p;}

void hebing(lnode*la,lnode*lb,lnode*lc)/*2个表合并部分*/
{lnode *p1,*p2,*p3;
p1=la->next;
p2=lb->next;
if(p1->m<p2->m)  {lc->next=p1;p3=p1;p1=p1->next;}
else {lc->next=p2;p3=p2;p2=p2->next;}
while(p1!=null&&p2!=null)
{if(p1->m<p2->m)  {p3->next=p1;p3=p3->next;p1=p1->next;}
else if(p1->m==p2->m) {p3->next=p1;p1=p1->next;p2=p2->next;}
else  {p3->next=p2;p3=p3->next;p2=p2->next;}}
if(p1!=null)
p3->next=p1;
else p3->next=p2;}

void lianjie(lnode*ld,lnode*le)  /*将ld,le连接*/
{lnode *p,*q;
p=ld->next;
q=ld;
while(p!=null)
{p=p->next;q=q->next;}
q->next=le->next;}

void shanchuhebing(lnode*la,lnode *lb,int i,int j,int len) /*从la中删除元素插入到lb*/
{lnode *p,*q,*l,*m,*v;
int n;
p=la->next;
q=la;
m=lb->next;
v=lb;
for(n=1;n<i;n++)
{p=p->next;q=q->next;}
l=p;
for(n=1;n<len;n++)
p=p->next;
q->next=p->next;
for(n=1;n<j;n++)
{m=m->next;v=v->next;}
v->next=l;
p->next=m;}



void dayuxiaoyushanchu(lnode *lv,int mink,int mark)  /*删除大于mink小于maxk的元素部分*/
{lnode *p,*q,*h;
p=lv->next;
q=lv;
while(p->m<=mink)
{p=p->next;q=q->next;}
h=p;
while(p->m<mark)
{p=p->next;free(h);h=p;}
q->next=p;}


void nixu(lnode *lx)  /*对单链表的逆置部分*/
{lnode *p,*q,*l;
p=lx->next;
q=lx->next->next;
p->next=null;
while(q!=null)
{l=q;
q=q->next;
l->next=p;
p=l;}
lx->next=p;
}

void shanxiang(lnode *ly)    /*删除相同元素部分:*/
{lnode *p,*q,*h;
p=ly->next;
q=ly->next->next;
while(q->next)
{while(p->m==q->m&&q->next) {p->next=q->next;h=q;q=q->next;free(h);}
if(q->next==null) break;
else{p=p->next;q=q->next;}
}
if(p->m==q->m)
p->next=null;
ly=ly->next;
while(ly!=null)
{printf("%d",ly->m);
ly=ly->next;}}


void jiaochafang(lnode *lm,lnode *ln)   /*交叉放入部分:*/
{lnode *p,*q,*m,*n;
p=lm->next;
q=ln->next;
while(p!=null&&q!=null)
{m=p;p=p->next;m->next=q;n=q;q=q->next;n->next=p;}
if(p==null)
n->next=q;
else
m->next=p;}


void dizenghebing(lnode *lg,lnode *lh,lnode *lz)  /*两个递增链表合并成一个递减链表部分:*/
{lnode *p,*q,*m,*n,*h;
p=lg->next;
q=lh->next;
if(p->m<q->m)  {h=p;p=p->next; h->next=null;}
else {h=q;q=q->next; h->next=null;}
while(p!=null&&q!=null)
{if(p->m<q->m) {m=p->next;p->next=h;h=p;p=m;}
else {n=q->next;q->next=h;h=q;q=n;}}
while(p!=null)
{m=p->next;p->next=h;h=p;p=m;}
while(q!=null)
{n=q->next;q->next=h;h=q;q=n;}
lz->next=h;
}

void jiaoji(lnode *ha,lnode *hb,lnode *hc) /*求2个表ha,hb的交集部分*/
{lnode *p,*q,*m,*n;
p=ha->next;
q=hb->next;
n=hc;
while(p!=null&&q!=null)
{if(p->m==q->m)
{m=(lnode*)malloc(sizeof(lnode));
m->next=null;
n->next=m;
n=n->next;
n->m=p->m;
p=p->next;
q=q->next;}
else if(p->m<q->m) p=p->next;
else   q=q->next;}
}

少了一大半
收到的鲜花
  • missiyou2008-10-19 22:57 送鲜花  49朵   附言:我很赞同
2008-10-19 21:05
鬼手刀客
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2008-10-19
收藏
得分:0 
呵呵,真够详细的
收到的鲜花
  • missiyou2008-10-19 22:57 送鲜花  49朵   附言:好文章
2008-10-19 22:22
珍珍
Rank: 1
来 自:广东
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-10-13
收藏
得分:0 
2008-10-20 10:14
快速回复:关于 线性表的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013488 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved