上一页 1 ··· 11 12 13 14 15
摘要: 问题描述:已知稀疏多项式Pn(X)=c1x^e1+c2x^e2+....+cmx^em,其中n=em>em-1>....>e1>=0;ci!=0,m>=1.试采用存储量同多项式项数m成正比的顺序存储结构,编写求Pn(x0)的算法(x0为给定值),并分析你的算法的时间复杂度。问题分析:多项式的顺序存储结构为:Typedefstruct{Intcoef;Intexp;}PolyTerm;Typedefstruct{PolyTerm*data;Intlength;}SqPoly;//多看下,加深理解结构体什么叫做存储量同多项式项数m成正比的顺序存储结构?这意味着随着m的 阅读全文
posted @ 2013-04-26 10:36 wj704 阅读(2214) 评论(0) 推荐(0) 编辑
摘要: 问题描述:一双向循环链表,每个结点除了prior,data和next三个域外,还增设了一个访问频度域freq。链表启用前,freq为0,每对链表进行一次LOCATE(L,x)的操作后,该结点的freq加1,同时调整链表中结点之间的次序,使得被频繁访问的结点总是靠近表头结点。编写符合上述要求的LOCATE算法。问题分析:重新把问题打在上面,更好地理解了一遍,也提高了自己的概括能力,挺好!看吧,当自己写时,总感觉有那么些别扭,可是看着别人的就豁然开朗,自己还没想到豁然开朗,思维的锻炼还不够。。。好吧,既然你已经看懂了答案了,很清晰的逻辑。但是我不想让自己现在就根据刚看的,然后写出来,看看明天还记不 阅读全文
posted @ 2013-04-26 10:34 wj704 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 问题描述:假设在算法描述语言中引入指针的二元运算“异或”若a和b为指针,则a异或b的运算结果仍为原指针类型,且A异或(a异或b)=(a异或a)异或b=b;(A异或b)异或b=a异或(a异或b)=a;即可利用一个指针域来实现双向链表L。链表L中的每个结点只含两个域:data域和LRPtr域,其中LRPtr域存放该节点的左邻与右邻结点指针(不存在是为null)的异或。若设指针L.Left指向链表中的最左结点,L.Right指向链表中的最右结点,则可实现从左向右或从右向左遍历此双向链表的操作。试写一算法按任一方向依次输出链表中的各元素的值。问题分析:感觉有点回到高中时期,哪个时候,没做过的题,第一次 阅读全文
posted @ 2013-04-26 10:32 wj704 阅读(928) 评论(0) 推荐(0) 编辑
摘要: 1,问题描述:某个单向循环链表的长度大于1,且表中既无头结点也无头指针。S为指向链表中的某个结点指针,编写算法删除指针S所指结点的前驱结点 问题分析:循环链表的特点是最后一个结点的指针域指向头结点,整个链表形成一个环,因此可以从表中任一结点出发均可找到表中的其他结点。 算法如下:Status ListDelete_CL(LinkList &S){ LinkList p,q; If(s==s->next) return error;//这个条件也让你更好地理解下面的内容呢。 q=s; p=s->next; If(p->next!=s) { q =p; p=p->n 阅读全文
posted @ 2013-04-26 10:25 wj704 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 问题描述:三个递增有序线性表A,B,C.对A有这样操作:删除既在B中又在C中出现的元素,分别对顺序表和单链表编写实现上述操作的算法,并分析时间复杂度。问题分析:此题的关键是对三个表中的元素进行比较,当A中有既在B中又在C中的元素时删除此元素。要这样比较,想到需要三个if嵌套,试着分析一下我的分析貌似有道理,用三个嵌套,答案是结合上面的题,做了个综合运用,莫非这就是综合概况能力呢?真的很奇妙呀。用顺序表实现的代码如下: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #define LIST_INIT_SIZE 100 4 #defi 阅读全文
posted @ 2013-04-26 10:16 wj704 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 问题描述:两个递增有序的线性表A,B表示两个集合,要求另给一空间构成线性表C,其元素为A和B中元素的交集,且C中的元素是递增有序,试对顺序表编写求C的算法。问题分析:有了上个题目的基础,这个题的解法应该容易想到些,两个线性表本身就是递增有序的,遍历的时候,比较两个线性表的元素,当相同时,把它加到C表中,这样就把C表构造成功了。关键对于我来说,怎样为表分配一空间,不是很清楚,还有这道题和上个题目的不同之处在于,C表的空间分配好后是往后面添加元素,记得前一个题是在它的前面加元素。先看下线性表的动态分配顺序存储结构:#defineLIST_INIT_SIZE100//线性表存储空间的起始分配量#de 阅读全文
posted @ 2013-04-26 10:13 wj704 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 问题描述:两个递增有序排列的线性表A和B,均以单链表做存储结构,编写算法,将两个表归并成一个递减有序的线性表C,要求C利用A, B表的结点空间问题分析:首先如果C表也是一个递增有序的,是不是简单些呢?当然,如果C是递增有序的,只要遍历两个表的中值,比较他们的大小,小的在大的前面,遍历完了以后,C表也就合并成了在这里它要求C表是递减有序的,哪问题的关键是不是把递增变成递减呢?又要怎么去变呢?想起昨天看过的算法,将首元节点变成尾元节点。说实话,暂时还是没想到好法子去变。。。经验少了,看的算法少了,看了下书,知道怎么弄了,把自己理解的重新理清楚下。C表是利用A,B表的节点空间的,可以让A->n 阅读全文
posted @ 2013-04-22 10:15 wj704 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 问题描述:线性表A(a1,a2,...am)和B(b1,b2,...bm),按以下规则融合C=(a1,b1,...am,bm,bm,bm+1...bn) 当m<=n时C=(a1,b1,...an,bn,an,bn+1...am) 当m>n时单链表的长度m,n均未显示存储,C表利用A表和B表中的结点空间构成。自己分析在另个地方写了,(未保存。。)代码没书上的好,记录下书上的算法:Status ListMerge_L(LinkList &A,LinkList &B, LinkList &C){LinkList pa,pb,qa,qb; pa=A->next 阅读全文
posted @ 2013-04-21 22:33 wj704 阅读(286) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15