知识大全 数据结构考研分类复习真题 第二章 答案[51]
Posted 结点
篇首语:读书是易事,思索是难事,但两者缺一,便全无用处。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第二章 答案[51]相关的知识,希望对你有一定的参考价值。
( ) void CreatOut( )∥建立有n个单词的单向链表 重复单词只在链表中保留一个 最后输出频度最高的k个单词 LinkedList la; la=(LinkedList)malloc(sizeof(node));∥申请头结点 la >next=null;∥链表初始化 for(i= ;i<=n;i++)∥建立n个结点的链表 scanf( %s a);∥a是与链表中结点数据域同等长度的字符数组 p=la >next;pre=p;∥p是工作指针 pre是前驱指针 while(p!=null) if(strcmp(p >data a)== ) p >freg++;∥单词重复出现 频度增 pre >next=p >next;∥先将p结点从链表上摘下 再按频度域值插入到合适位置 pre=la; q=la >next; while(q >freg>p >freg) (pre=q; q=q >next; ) pre >next=p; p >next=q;∥将p结点插入到合适位置 else pre=p;p=p >next;∥指针后移 if(p==null)∥该单词没出现过 应插入到链表最后 p=(LinkedList)malloc(sizeof(node)); strcopy(p >data a);p >freg= ;p >next=null;pre >next=p; ∥if 新结点插入 ∥结束for循环建表 int k i= ; scanf( 输入要输出单词的个数%d &k); p=la >next; while (p && i<k)∥输出频度最高的k个单词 printf( 第% d个单词%s出现% d次\\n ++i p >data p >freg); p=p >next; if (!p) printf( 给出的%d值太大\\n k); ∥结束算法
cha138/Article/program/sjjg/201311/23318相关参考
第章 线性表答案 一.选择题 ABCADDDCBBCIIEBCBCCCAAADCBDCBBAD 二.判断题 ×√√××××××××××√×√ 部分答案解释如下 头结点并不仅起
.请写出应填入下列叙述中( )内的正确答案 某一工程作业的网络图如图所示其中箭头表示作业箭头边的数字表示完成作业所需的天数箭头前后的圆圈表示事件圆圈中的数字表示
.()la () &
.[题目分析]本题所用数据结构是静态双向链表其结构定义为 typedef struct node char data[maxsize];∥用户姓名maxsize是
.[题目分析]在递增有序的线性表中删除数值相同的元素要知道被删除元素结点的前驱结点 LinkedListDelSame(LinkedListla) ∥la是递增有序的单链表本算法去掉数值相同的
()要求编程实现带头结点的单链表的逆置首先建立一单链表然后逆置 typedef struct node int data;∥假定结点数据域为整型 struct&
()本题与上面两题类似要求结果指针为lc其核心语句段如下 pa=la>next;pb=hb>next; lc=(LinkedList)malloc(sizeof(LNode));
.设 q:=p^llink; 则 q^rlink:=p^rlink; p^rlink^llink:=q; p^llink:=q^llink; q^lli
.[题目分析] 知道双向循环链表中的一个结点与前驱交换涉及到四个结点(p结点前驱结点前驱的前驱结点后继结点)六条链 void Exchange(LinkedListp)∥p是
.[题目分析]顺序存储结构的线性表的逆置只需一个变量辅助空间算法核心是选择循环控制变量的初值和终值 void SeqInvert(ElemTypea[]intn)∥a是具有n个元素用一