知识大全 数据结构考研分类复习真题 第二章 答案[32]
Posted 元素
篇首语:富贵不淫贫贱乐,男儿到此是豪雄。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第二章 答案[32]相关的知识,希望对你有一定的参考价值。
.[题目分析] 判断链表中数据是否中心对称 通常使用栈 将链表的前一半元素依次进栈 在处理链表的后一半元素时 当访问到链表的一个元素后 就从栈中弹出一个元素 两元素比较 若相等 则将链表中下一元素与栈中再弹出元素比较 直至链表到尾 这时若栈是空栈 则得出链表中心对称的结论;否则 当链表中一元素与栈中弹出元素不等时 结论为链表非中心对称 结束算法的执行
int dc(LinkedList h int n)∥h是带头结点的n个元素单链表 链表中结点的数据域是字符 本算法判断链表是否是中心对称 char s[]; int i= ;∥i记结点个数 s字符栈 p=h >next;∥p是链表的工作指针 指向待处理的当前元素 for(i= ;i<=n/ ;i++)∥链表前一半元素进栈 s[i]=p >data;p=p >next; i ;∥恢复最后的i值 if(n% == )p=p >next;∥若n是奇数 后移过中心结点 while(p!=null && s[i]==p >data)i ;p=p >next;∥测试是否中心对称 if(p==null)return( );∥链表中心对称 else return( );∥链表不中心对称 ∥算法结束
[算法讨论] 算法中先将 链表的前一半 元素(字符)进栈 当n为偶数时 前一半和后一半的个数相同;当n为奇数时 链表中心结点字符不必比较 移动链表指针到下一字符开始比较 比较过程中遇到不相等时 立即退出while循环 不再进行比较
cha138/Article/program/sjjg/201311/23336相关参考
typedefstructnode ElemTypedata; structnode*prior*next; node*DLinkedList; void TwoWa
[题目分析]因为数组中存放的是从到N的自然数原程序运行后数组元素A[i](<=i<=N)中存放的是A[]到A[i]中比原A[i]小的数据元素的个数易见A[N]+就是原A[N]的值(假定
第章 线性表答案 一.选择题 ABCADDDCBBCIIEBCBCCCAAADCBDCBBAD 二.判断题 ×√√××××××××××√×√ 部分答案解释如下 头结点并不仅起
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[32]
[题目分析]在二叉树上建立三叉链表若二叉树已用二叉链表表示则可象题那样给每个结点加上指向双亲的指针(根结点的双亲指针为空)至于删除元素值为x的结点以及以x为根的子树与题完全一样请参照题下面给出建立
知识大全 数据结构考研分类复习真题 第六章 答案 (四)[32]
.前缀码是一编码不是任何其它编码前缀的编码例如和就不是前缀码因为编码是编码的前缀仅从编码来看和是前缀码但因历史的原因它不被称为前缀码而是把一编码不是另一编码前缀的编码称为前缀码 利用二叉树可以构
.()la () &
.下列算法为奇偶交换排序思路如下第一趟对所有奇数的i将a[i]和a[i+]进行比较第二趟对所有偶数的i将a[i]和a[i+]进行比较每次比较时若a[i]>a[i+]将二者交换;以后重复上述二
.[题目分析]本题所用数据结构是静态双向链表其结构定义为 typedef struct node char data[maxsize];∥用户姓名maxsize是
()voidCreatOut()∥建立有n个单词的单向链表重复单词只在链表中保留一个最后输出频度最高的k个单词 LinkedListla; la=(LinkedList)malloc(size
.[题目分析]在递增有序的线性表中删除数值相同的元素要知道被删除元素结点的前驱结点 LinkedListDelSame(LinkedListla) ∥la是递增有序的单链表本算法去掉数值相同的