数据结构教程习题答案 李蓉蓉 安杨等编著第三版 第二章答案

上传人:飞*** 文档编号:16376396 上传时间:2017-11-07 格式:DOC 页数:34 大小:96KB
返回 下载 相关 举报
数据结构教程习题答案 李蓉蓉 安杨等编著第三版 第二章答案_第1页
第1页 / 共34页
数据结构教程习题答案 李蓉蓉 安杨等编著第三版 第二章答案_第2页
第2页 / 共34页
数据结构教程习题答案 李蓉蓉 安杨等编著第三版 第二章答案_第3页
第3页 / 共34页
数据结构教程习题答案 李蓉蓉 安杨等编著第三版 第二章答案_第4页
第4页 / 共34页
数据结构教程习题答案 李蓉蓉 安杨等编著第三版 第二章答案_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《数据结构教程习题答案 李蓉蓉 安杨等编著第三版 第二章答案》由会员分享,可在线阅读,更多相关《数据结构教程习题答案 李蓉蓉 安杨等编著第三版 第二章答案(34页珍藏版)》请在金锄头文库上搜索。

1、2.2/*题目:设计一个算法,将 x 插入到有序表中的适当位置,并且使插入后仍未有序表设计:狼影时间:2012.9.14*/# include # define size 100/定义节点typedef struct nodeint datasize;int length;NODE;/函数的声明void insertlist(NODE *arrylist, int n);void creatlist(NODE *arrylist);main()NODE arrylist;int n, i;printf(输入数据的个数n);scanf(%d, &arrylist.length);creatlis

2、t(&arrylist);printf(请输入要插入的数字n);scanf(%d, &n);insertlist(&arrylist, n);/输出插入后的结果printf(插入后的结果是n);for(i = 0; ilength; i+)scanf(%d, &arrylist-datai);/对数值进行插入void insertlist(NODE *arrylist, int n)int i;int j = arrylist-length;for(i = 0; ilength; i+)if(narrylist-datai);elsefor(; ji; j-)arrylist-dataj =

3、arrylist-dataj-1;arrylist-datai = n;arrylist-length+;return;arrylist-dataarrylist-length = n;arrylist-length+;/*输入数据的个数3输入有序的数据1 2 3请输入要插入的数字0插入后的结果是0 1 2 3Press any key to continue*/2.3/*题目:将一个带头结点的数据域依次为 a1 a2 a3 a4.an 的链表进行逆置实践:狼影时间:2012.9.14*/# include # include /定义节点typedef struct node int data

4、;struct node *pNext;NODE;/创建链表void creatlist(NODE *pHead, int n);void traverse(NODE *pHead);void printlist(NODE *pHead);main()int n;NODE *pHead = (NODE *)malloc(sizeof(NODE);if(NULL = pHead)printf(内存分配错误n);exit(-1);pHead-pNext = NULL;printf(输入节点的个数n);scanf(%d, &n);creatlist(pHead, n);traverse(pHead)

5、;printf(转置后的数据是n);printlist(pHead);/创建链表void creatlist(NODE *pHead, int n)NODE *pNew;NODE *pNow = pHead;int i;printf(输入数据n);for(i = 0; ipNext = NULL;scanf(%d, &pNew-data);pNow-pNext = pNew;pNow = pNew;/进行转置void traverse(NODE *pHead)NODE *pNow;NODE *pNew = pHead-pNext;pHead-pNext = NULL;while(pNew !=

6、 NULL)pNow = pNew;pNew = pNow-pNext;pNow-pNext = pHead-pNext;pHead-pNext = pNow;/进行输出void printlist(NODE *pHead)NODE *pNow = pHead-pNext;/利用前叉法进行表的重建while(NULL != pNow)printf(%d , pNow-data);pNow = pNow-pNext;printf(n);/*输入节点的个数4输入数据1 2 3 4转置后的数据是4 3 2 1Press any key to continue*/2.4/*题目:设有一个双链表,每个节

7、点中除有 prior,data 和 next 三个域外,还有一个访问频度域,在链表被启用之前,其值均初始化为0,每当进行定位操作时零元素值为 x 的节点中的 frep 域的值加一,并调整表中节点的次序,使其按访问频度的递减排列以便使频繁访问的节点总是靠近表头,尝试编写符合上述要求的算法设计:狼影时间:2012.9.14*/# include # include # define size 5 /在这修改查找的次数/定义节点typedef struct node int data;int frep;struct node *pRior;struct node *pNext;NODE;/函数声明N

8、ODE *initlist(void);void creatlist(NODE *pHead, int n);void printlist(NODE *pHead);int locatelist(NODE *pHead, int e);void Insertsort(NODE *pHead);main()int n;int i;int e;int pos;int number = size;NODE *pHead;pHead = initlist();printf(输入节点个数n);scanf(%d, &n);creatlist(pHead, n);printf(你可以查找%d 次数的位置n,

9、 number);for(i = 0; ipNext = NULL;pHead-pRior = NULL;return pHead;/创建链表void creatlist(NODE*pHead, int n)int i;NODE *pNow = pHead;NODE *pNew;printf(输入数据n);for(i = 0; ifrep = 0;scanf(%d, &pNew-data);pNew-pNext = NULL;pNew-pRior = pNow;pNow-pNext = pNew;pNow = pNew;/对链表进行输出void printlist(NODE *pHead)NO

10、DE *pNow = pHead-pNext;while(NULL != pNow)printf(节点的数据%d-, pNow-data);printf(被查的频率%dn, pNow-frep);printf(n);pNow = pNow-pNext;/对数据进行定位int locatelist(NODE *pHead, int e)int pos = 0;NODE *pNow = pHead-pNext;while(pNow != NULL)pos +;if( pNow-data = e)pNow-frep +;return pos;pNow = pNow-pNext;if(NULL = p

11、Now)printf(没有要查找的数据n);return 0;/对链表进行排序void Insertsort(NODE *pHead)NODE *pNow1 = pHead-pNext;NODE *pNew = pHead;NODE *pNow2;if(NULL != pNow1)pNow2 = pNow1-pNext;pNow1-pNext = NULL;pNow1 = pNow2;while(NULL != pNow1)pNow2 = pNow1-pNext;pNew = pHead;while(pNew-pNext != NULL & pNew-pNext-frep = pNow1-fr

12、ep)pNew = pNew-pNext;pNow1-pNext = pNew-pNext;pNow1-pRior = pNew;if(NULL != pNew-pNext)pNew-pNext-pRior = pNow1;pNew-pNext = pNow1;pNow1 = pNow2;/*输入节点个数4输入数据1 2 3 4你可以查找 5 次数的位置输入要查找的数的1你要查找的数据的位置是 1查找后链表的次序节点的数据 1-被查的频率 1节点的数据 2-被查的频率 0节点的数据 3-被查的频率 0节点的数据 4-被查的频率 0输入要查找的数的2你要查找的数据的位置是 2查找后链表的次序节点

13、的数据 1-被查的频率 1节点的数据 2-被查的频率 1节点的数据 3-被查的频率 0节点的数据 4-被查的频率 0输入要查找的数的2你要查找的数据的位置是 2查找后链表的次序节点的数据 2-被查的频率 2节点的数据 1-被查的频率 1节点的数据 3-被查的频率 0节点的数据 4-被查的频率 0输入要查找的数的3你要查找的数据的位置是 3查找后链表的次序节点的数据 2-被查的频率 2节点的数据 1-被查的频率 1节点的数据 3-被查的频率 1节点的数据 4-被查的频率 0输入要查找的数的3你要查找的数据的位置是 3查找后链表的次序节点的数据 2-被查的频率 2节点的数据 3-被查的频率 2节点的数据 1-被查的频率 1节点的数据 4-被查的频率 0Press any key to continue*/2.5/*题目:设 ha = a1,a2, a3, a4.an, hb = b1, b2, b3, b4.bn是两

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号