知识大全 数据结构考研分类复习真题 第二章 答案[26]
Posted 负数
篇首语:书到用时方恨少,事非经过不知难。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第二章 答案[26]相关的知识,希望对你有一定的参考价值。
.[题目分析]题目要求重排n个元素且以顺序存储结构存储的线性表 使得所有值为负数的元素移到正数元素的前面 这可采用快速排序的思想来实现 只是提出暂存的第一个元素(枢轴)并不作为以后的比较标准 比较的标准是元素是否为负数
int Rearrange(SeqList a; int n)∥a是具有n个元素的线性表 以顺序存储结构存储 线性表的元素是整数 本算法重排线性表a 使所有值为负数的元素移到所有值为正数的数的前面 i= ; j=n ;∥ i j为工作指针(下标) 初始指向线性表a的第 个和第n个元素 t=a[ ];∥暂存枢轴元素 while(i<j) while(i<j && a[j]>= ) j ;∥ 若当前元素为大于等于零 则指针前移 if(i<j)a[i]=a[j];i++;∥ 将负数前移 while(i<j &&a[i]< )i++;∥ 当前元素为负数时指针后移 if(i<j) a[j ]=a[i];∥ 正数后移 a[i]=t;∥将原第一元素放到最终位置
[算法讨论] 本算法时间复杂度为O(n) 算法只是按题目要求把正负数分开 如要求统计负数和大于等于零的个数 则最后以t来定 如t为负数 则 至i共i+ 个负数 n i个正数(包括零) 另外 题目并未提及零的问题 笔者将零放到正数一边 对此问题的扩充是若元素包含正数 负数和零 并要求按负数 零 正数的顺序重排线性表 统计负数 零 正数的个数 请读者利用上面解题思想自行解答
cha138/Article/program/sjjg/201311/23348相关参考
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[26]
[题目分析]森林在先根次序遍历时首先遍历第一棵子树的根接着是第一棵子树的结点之后是第二棵树……最后一棵树本题中E[i]是H[i]所指结点的次数次数就是结点的分支个数B而分支数B与树的结点数N的关系
知识大全 数据结构考研分类复习真题 第六章 答案 (四)[26]
cha138/Article/program/sjjg/201311/22647
①快速排序 ②冒泡排序 ③直接插入排序 &nb
深度为长度为 ()略 ()表的长度为深度为 ()head(tail(head(head(head(tail(tail(tail(tail(A))))))))) 共享结构广义表A=(((bc
[题目分析]本题与上面题基本相同现用类C语言给出该双端队列的定义 #definemaxsize typedefstruct datatypeelem[maxsize]; int
第章 线性表答案 一.选择题 ABCADDDCBBCIIEBCBCCCAAADCBDCBBAD 二.判断题 ×√√××××××××××√×√ 部分答案解释如下 头结点并不仅起
.()la () &
.[题目分析]本题所用数据结构是静态双向链表其结构定义为 typedef struct node char data[maxsize];∥用户姓名maxsize是
()voidCreatOut()∥建立有n个单词的单向链表重复单词只在链表中保留一个最后输出频度最高的k个单词 LinkedListla; la=(LinkedList)malloc(size
.[题目分析]在递增有序的线性表中删除数值相同的元素要知道被删除元素结点的前驱结点 LinkedListDelSame(LinkedListla) ∥la是递增有序的单链表本算法去掉数值相同的