
数据结构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 · 719 阅读 · 0 评论 -
ch09_ex45 用链地址法处理冲…
9.45③ 假设哈希表长为m,哈希函数为H(x),用链地址法 处理冲突。试编写输入一组关键字并建造哈希表的算法。 实现下列函数: int BuildHashTab(ChainHashTab &H, int n, HKeyType es[]); 哈希表的类型ChainHashTab定义如下: #define NUM 7 #define NULLKEY -1 #define原创 2014-08-29 22:27:21 · 628 阅读 · 0 评论 -
ch09_ex44 编写按第一个字母…
9.44④ 已知某哈希表的装载因子小于1,哈希函数 H(key)为关键字(标识符)的第一个字母在字母表中 的序号,处理冲突的方法为线性探测开放定址法。 试编写一个按第一个字母的顺序输出哈希表中所有 关键字的算法。 实现下列函数: void PrintKeys(HashTable ht, void(*print)(StrKeyType)); 哈希表的类型HashTable定义如下: #defin原创 2014-08-29 22:27:19 · 1709 阅读 · 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 · 1765 阅读 · 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 · 551 阅读 · 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 · 977 阅读 · 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 · 584 阅读 · 0 评论 -
ch09_ex31 判定给定二叉树是…
9.31④ 试写一个判别给定二叉树是否为二叉排序树 的算法,设此二叉树以二叉链表作存储结构。且树中 结点的关键字均不同。 实现下列函数: Status IsBSTree(BiTree t); 二叉树的类型BiTree定义如下: typedef struct { KeyType key; ... ... // 其他数据域 } ElemType; typedef str原创 2014-08-29 22:26:56 · 1417 阅读 · 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 · 622 阅读 · 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 · 565 阅读 · 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,int v); 一维数组类型Array1D的定义: typedef原创 2014-08-29 22:27:38 · 527 阅读 · 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 · 797 阅读 · 0 评论 -
ch10_ex42 序列的"中值记录"…
10.42④ 序列的"中值记录"指的是:如果将此序列排序 后,它是第n/2个记录。试写一个求中值记录的算法。 实现下列函数: KeyType MidElement(SqList &L); 顺序表的类型SqList定义如下: typedef struct { KeyType key; ... } RedType; typedef struct { RedType r[MA原创 2014-08-29 22:27:11 · 1456 阅读 · 0 评论 -
ch10_ex35 满足完全三叉树的…
10.35③ 假设定义堆为满足如下性质的完全三叉树: (1) 空树为堆; (2) 根结点的值不小于所有子树根的值,且所有子树 均为堆。 编写利用上述定义的堆进行排序的算法,并分析推导 算法的时间复杂度。 实现下列函数: void HeapSort(HeapType &h); 堆(顺序表)的类型HeapType定义如下: typedef char KeyType; typedef s原创 2014-08-29 22:27:09 · 1320 阅读 · 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 · 1486 阅读 · 1 评论 -
ch10_ex26 冒泡排序 用i…
10.26② 如下所述改写教科书1.4.3节中的起泡排序算法: 将算法中用以起控制作用的布尔变量change改为一个整型变 量,指示每一趟排序中进行交换的最后一个记录的位置,并 以它作为下一趟起泡排序循环终止的控制值。 实现下列函数: void BubbleSort(SqList &L); 顺序表的类型SqList定义如下: typedef struct { KeyType key;原创 2014-08-29 22:27:02 · 756 阅读 · 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 { KeyType key; ... } RedType; typedef struct {原创 2014-08-29 22:27:00 · 2508 阅读 · 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 · 2429 阅读 · 0 评论