数据结构题目.docx

. 设有一组初始记录关键字序列(K1,K2,…,Kn),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于Ki,右半部分的每个关键字均大于等于Ki。 void quickpass(int r[], int s, int t) { int i=s, j=t, x=r[s]; while(ij){ while (ij r[j]x) j=j-1; if (ij) {r[i]=r[j];i=i 1;} while (ij r[i]x) i=i 1; if (ij) {r[j]=r[i];j=j-1;} } r[i]=x; } 设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。 typedef char datatype; typedef struct node {datatype data; struct node *next;}lklist; void split(lklist *head,lklist *ha,lklist *hb,lklist *hc) { lklist *p; ha=0,hb=0,hc=0; for(p=head;p!=0;p=head) { head=p-next; p-next=

文档评论(0)

1亿VIP精品文档

相关文档