正在加载图片...
9.已知两个单链表A和B分别表示两个集合,其元素递增排列,编写一个算法求出A和B的交集C, 要求c同样以元素递增的单链表形式存储 linklist process (linklist A, linklist B) pa=A->next pb=B->next pc=C=new Inode while(pa&&pb) if(pa->data<pb->data pa=pa->next; eIse if(pa->data>pb->data pb=pb->next Snew Inode, S->data=pa->data pc->next=s pap pb=pb->next return(c) 1设有一个双向链表,每个结点中除有 prior、data和next域外,还有一个访问频度freq域, 在链表被起用之前,该域其值初始化为零。每当在链表进行一次 Locat a(L,x)运算后,令值为x的结点 中的£req域增1,并调整表中结点的次序,使其按访问频度的递减序列排列,以便使频繁访问的结点总 是靠近表头。试写一个算法满足上述要求的 Locate(L,x)算法。 typedef struct anode datatype data; int freq struct dnode prior, "next inode, dlinklist} ⒐已知两个单链表 A 和 B 分别表示两个集合,其元素递增排列,编写一个算法求出 A 和 B 的交集 C, 要求 C 同样以元素递增的单链表形式存储。 linklist process(linklist A,linklist B) { pa=A->next; pb=B->next; pc=C=new lnode; while (pa&&pb) { if (pa->data<pb->data) pa=pa->next; else if (pa->data>pb->data) pb=pb->next; else { s=new lnode; s->data=pa->data; pc->next=s; pc=s; pa=pa->next; pb=pb->next; } } pc->next=NULL; return(c); } ⒑设有一个双向链表,每个结点中除有 prior、data 和 next 域外,还有一个访问频度 freq 域, 在链表被起用之前,该域其值初始化为零。每当在链表进行一次 Locata(L,x)运算后,令值为 x 的结点 中的 freq 域增 1,并调整表中结点的次序,使其按访问频度的递减序列排列,以便使频繁访问的结点总 是靠近表头。试写一个算法满足上述要求的 Locata(L,x)算法。 typedef struct dnode{ datatype data; int freq; struct dnode *prior,*next; }dnode,dlinklist;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有