数据结构
} else { if (huffTree[i].weight huffTree[s1].weight) { s2 = s1。 s1 = i。 } 9 else if (huffTree[i].weight huffTree[s2].weight) s2 = i。 } } } (5) 建立哈夫曼树函数 void Huffman::MakeCharMap() { if (n = 1) return
ct node { int data。 struct node *next。 猴 子选大王 5 }linklist。 主函数的实现调用操作: 采用循环链表来实现,可参考课本。 int main() { int i, n, k, m, total。 linklist *head, *p, *s, *q。 /* 读入问题条件 */ printf(Please enter the number of
,s) { strcpy(depart,d)。 strcpy(prof,p)。 } void display() { cout编号和姓名 :。 erson::display()。 cout部门 :depart 职称 :profendl。 } }。 Tianjin University 18 第 8章习题答案 =不做要求 Tianjin University 19 本讲概要 2. 实验 61——
简单 数据量 小 大 图形精度 高 低 图形运算、搜索 复杂、高效 简单、低效 软件与硬件技术 不一致 一致或接近 遥感影像格式 要求比较高 不高 图形输出 显示质量好、精度高, 但 成本比较高 输出方法快速,质量低,成本比较低廉 数据共享 不易实现 容易实现 拓扑和网络分析 容易实现 不易实现 矢量结构与栅格结构的比较 第五节 地理数据的编码方法 编码的概念和意义 栅格结构编码方法
空。 其中的判断条件是不科学的。 实际上,当 =maxsize1,时,对列未必满,出现了 “假溢出”现象。 采用循环对列可以解决这一问题。 循环队列 循环队列就是把顺序队列的头和尾相连,构成一个闭环。 (见图) 当尾指针 =max1 时,若要插入 (删除)一个元素, 则要插入到第 0个位置, 即 [(max1)+1] % max=0 (取余数)。 若 max=8 时,要插入一个元素,应插入到第
个一维数组 r中,具体的做法是:设两个指示器 i和 j,初始时 i指向数组中的第一个数据, j指向最末一个数据。 i先不动使 j逐步前移,每次对二者所指的数据进行比较,当遇到 r[i]大于 r[j]的情况时,就将二者对调位置;然后令 j固定使 i逐步后移做数据比较,当遇到 r[i]大于 r[j] 时,又进行位置对调;然后又是 i不动使 j前移作数据比较; …… ; 如此反复进行,直至 i与
/*矩阵的行数 */ int。 /*矩阵的列数 */ int tn。 /*矩阵的非 0元素个数 */ tritype data[maxn]。 /*非 0元素的三元组表 */ }tmatrix。 把 M压缩后,存储成: 行数 rn 列数 非 0数 tn 行号 列号 元素值 1 2 2 1 3 1 3 1 1 3 6 4 5 2 8 6 1 5 7 6 9 7 7 7 例 : 求
如下面的图所示。 假设指针 p指向单链表中的第 i个结点,指针 s指向已生成的新结点,链入新结点的操作如下: 将新结点 *s的链域指向结点 *p的后继结点 (即 snext=pnext); 将结点 *p的链域指向新结点 (即 pnext=s)。 head a1 a 2 a i a n ∧ a i +1 S x P insert(head) /*在第 i个结点 后 插入结点 S {
{ 语句序列 } 类 C语言的形参书写比标准 C语言简单, 如, int xyz(int a,int b,int c)可以简单写成 int xyz (int a,b,c) 类 C与标准 C的主要区别 (续 ) • 2. 局部量的说明可以省略,必要时对其 作用给予注释。 • 3. 不含 go to语句,增加一个出错处理语 句 error(字符串 ),其功能是终止算法
char pp。 printf(==================\n)。 printf( a. 按编号查询 \n)。 printf( b. 按姓名查询 \n)。 printf(==================\n)。 printf( 请 选 择: )。 p=headnext。 scanf(%s,amp。 pp)。 if (pp==39。 a39。 ||pp==39。 A39。 ) {