![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构C语言版
文章平均质量分 64
卓洛王子
卓洛王子又开始找工作了,求C++引擎或相关。
展开
-
数据结构C语言版 ch09_ex26&n…
时间定格:2013年04月30日,五一就不回家了。游戏输到烦了,实在不能再耗下去了。今天开了数据结构C语言版的分组,从第9章开始,完成以下anyview的练习。尽力完成毕业设计。我先毕业吧。再看能找到工作不。9.26② 试将折半查找算法改写成递归算法。 实现下列函数:int BinSearch(SSTable s, int low, int high, KeyType k);原创 2014-08-29 22:26:52 · 682 阅读 · 0 评论 -
ch09_ex45 用链地址法处理冲…
9.45③ 假设哈希表长为m,哈希函数为H(x),用链地址法处理冲突。试编写输入一组关键字并建造哈希表的算法。实现下列函数:int BuildHashTab(ChainHashTab &H, int n, HKeyTypees[]);哈希表的类型ChainHashTab定义如下:#define NUM 7#define NULLKEY -1#define原创 2014-08-29 22:27:21 · 579 阅读 · 0 评论 -
ch09_ex44 编写按第一个字母…
9.44④ 已知某哈希表的装载因子小于1,哈希函数H(key)为关键字(标识符)的第一个字母在字母表中的序号,处理冲突的方法为线性探测开放定址法。试编写一个按第一个字母的顺序输出哈希表中所有关键字的算法。实现下列函数:void PrintKeys(HashTable ht, void(*print)(StrKeyType));哈希表的类型HashTable定义如下:#defin原创 2014-08-29 22:27:19 · 1643 阅读 · 0 评论 -
ch01_ex17 求k阶裴波那契序列…
1.17③ 已知k阶裴波那契序列的定义为 f0=0, f1=0, ..., fk-2=0, fk-1=1; fn=fn-1+fn-2+...+fn-k, n=k,k+1,...试编写求k阶裴波那契序列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。要求实现下列函数:Status Fibonacci(int k, int m, int &f);原创 2014-08-29 22:27:17 · 1715 阅读 · 0 评论 -
ch01_ex16 如果三个整数X,Y…
◆1.16② 试写一算法,如果三个整数X,Y和Z的值不是依次非递减的,则通过交换,令其为非递减。要求实现下列函数:void Descend(int &x, int &y,int &z); 答案以及解析:void swap(int &x,int &y){ int temp = x; x = y; y = temp;}void Descend(int原创 2014-08-29 22:27:15 · 516 阅读 · 0 评论 -
ch10_ex43 c[i]记录比a[i]关…
10.43③ 已知记录序列a[1..n] 中的关键字各不相同,可按如下所述实现计数排序:另设数组c[1..n],对每个记录a[i], 统计序列中关键字比它小的记录个数存于c[i], 则c[i]=0的记录必为关键字最小的记录,然后依c[i]值的大小对a中记录进行重新排列,试编写算法实现上述排序方法。实现下列函数:void CountSort(SqList &L);顺序表的类型Sq原创 2014-08-29 22:27:13 · 936 阅读 · 0 评论 -
ch10_ex32 荷兰国旗问题
10.32⑤ 荷兰国旗问题:设有一个仅由红、白、兰这三种颜色的条块组成的条块序列。请编写一个时间复杂度为O(n)的算法,使得这些条块按红、白、兰的顺序排好,即排成荷兰国旗图案。实现下列函数:void HFlag(FlagList &f)"荷兰国旗"的顺序表的类型FlagList定义如下:#define red '0'#define white '1'#define blu原创 2014-08-29 22:27:05 · 539 阅读 · 0 评论 -
ch09_ex31 判定给定二叉树是…
9.31④ 试写一个判别给定二叉树是否为二叉排序树的算法,设此二叉树以二叉链表作存储结构。且树中结点的关键字均不同。实现下列函数:Status IsBSTree(BiTree t);二叉树的类型BiTree定义如下:typedef struct { KeyType key; ... ... // 其他数据域} ElemType;typedef str原创 2014-08-29 22:26:56 · 1373 阅读 · 0 评论 -
ch09_ex25 int Search(S…
实现下列函数:int Search(SSTable s, KeyType k);静态查找表的类型SSTable定义如下:typedef struct { KeyType key; ... ... // 其他数据域} ElemType;typedef struct { ElemType *elem; int length;} S原创 2014-08-29 22:26:54 · 569 阅读 · 0 评论 -
CH6_EX34 数据结构Anyview练习
6.34③ 假定用两个一维数组L[1..n]和R[1..n]作为有n个结点的二叉树的存储结构, L[i]和R[i]分别指示结点i的左孩子和右孩子,0表示空。试写一个算法,先由L和R建立一维数组T[1..n],使T中第i(i=1,2,...,n)个分量指示结点i的双亲,然后判别结点u是否为结点v的子孙。要求实现以下函数:Status Dencend(Array1D L, Array原创 2014-08-29 22:27:40 · 528 阅读 · 0 评论 -
CH06_EX33 数据结构Anyview练…
6.33③ 假定用两个一维数组L[1..n]和R[1..n]作为有n个结点的二叉树的存储结构, L[i]和R[i]分别指示结点i的左孩子和右孩子,0表示空。试写一个算法判别结点u是否为结点v的子孙。要求实现以下函数:Status Dencendant(Array1D L,Array1D R,int n,int u,intv);一维数组类型Array1D的定义:typedef原创 2014-08-29 22:27:38 · 487 阅读 · 0 评论 -
ch09_ex33 从大到小输出给定…
9.33③ 编写递归算法,从大到小输出给定二叉排序树中所有关键字不小于x的数据元素。要求你的算法的时间复杂度为O(log2n+m),其中n为排序树中所含结点数,m为输出的关键字个数。实现下列函数:void OrderOut(BiTree t, KeyType x,void(*visit)(TElemType));二叉树的类型BiTree定义如下:typedef struct {原创 2014-08-29 22:27:36 · 748 阅读 · 0 评论 -
ch10_ex42 序列的"中值记录"…
10.42④ 序列的"中值记录"指的是:如果将此序列排序后,它是第n/2个记录。试写一个求中值记录的算法。实现下列函数:KeyType MidElement(SqList &L);顺序表的类型SqList定义如下:typedef struct { KeyTypekey; ... } RedType;typedef struct { RedType r[MA原创 2014-08-29 22:27:11 · 1403 阅读 · 0 评论 -
ch10_ex35 满足完全三叉树的…
10.35③ 假设定义堆为满足如下性质的完全三叉树:(1) 空树为堆;(2) 根结点的值不小于所有子树根的值,且所有子树 均为堆。编写利用上述定义的堆进行排序的算法,并分析推导算法的时间复杂度。实现下列函数:void HeapSort(HeapType &h);堆(顺序表)的类型HeapType定义如下:typedef char KeyType;typedef s原创 2014-08-29 22:27:09 · 1248 阅读 · 0 评论 -
ch10_ex34 从p=1起,逐个插入建堆
10.34③ 已知(k1,k2,...,kp)是堆,则可以写一个时间复杂度为O(log(n))的算法将(k1,k2,...,kp,kp+1)调整为堆。试编写"从p=1起,逐个插入建堆"的算法,并讨论由此方法建堆的时间复杂度。实现下列函数:void CreateHeap(HeapType &h, char *s);堆(顺序表)的类型HeapType定义如下:typedef char原创 2014-08-29 22:27:07 · 1436 阅读 · 1 评论 -
ch10_ex26 冒泡排序 用i…
10.26② 如下所述改写教科书1.4.3节中的起泡排序算法:将算法中用以起控制作用的布尔变量change改为一个整型变量,指示每一趟排序中进行交换的最后一个记录的位置,并以它作为下一趟起泡排序循环终止的控制值。实现下列函数:void BubbleSort(SqList &L);顺序表的类型SqList定义如下:typedef struct { KeyTypekey;原创 2014-08-29 22:27:02 · 722 阅读 · 0 评论 -
ch10_ex23 以L.r[k+1]作为监…
10.23② 试以L.r[k+1]作为监视哨改写教材10.2.1节中给出的直接插入排序算法。其中,L.r[1..k]为待排序记录且k实现下列函数:void InsertSort(SqList &L);顺序表的类型SqList定义如下:typedef struct { KeyTypekey; ... } RedType;typedef struct {原创 2014-08-29 22:27:00 · 2447 阅读 · 0 评论 -
ch09_ex33 从大到小输出给定二叉排…
9.33③ 编写递归算法,从大到小输出给定二叉排序树中所有关键字不小于x的数据元素。要求你的算法的时间复杂度为O(log2n+m),其中n为排序树中所含结点数,m为输出的关键字个数。实现下列函数:void OrderOut(BiTree t, KeyType x,void(*visit)(TElemType));二叉树的类型BiTree定义如下:typedef struct {原创 2014-08-29 22:26:58 · 2373 阅读 · 0 评论