
【大学课程之数据结构】
文章平均质量分 80
小巫技术博客
如果你想成功你不应该成为一个普通的可被随意替代的人你应该成为稀缺的不可替代的那类人
展开
-
顺序表的实现
//2_a1.cpp 实验1 第1题参考答案#includeusing namespace std;typedef int datatype;const int maxsize = 100;typedef struct { datatype data[maxsize]; int n;}sqlist; sqlist* InitList(){ sqlist * L = ne原创 2011-09-14 22:34:04 · 1737 阅读 · 0 评论 -
数据结构之希尔排序(谢尔排序)
/**1. 编写一个希尔排序的算法,并且在main函数中验证其功能已实现*希尔排序(Shell's Method)又称“缩小增量排序”,它的基本方法是:*将排序表分成若干组,所有相隔为某个“增量”的记录为一组,在各组内*进行直接排序;初始时增量d1较大,分组越多(每组的记录数少),以后*增量逐渐减少,分组减少(每组的记录数增多),直到最后增量为1,所有*记录放为同一组,怎整体进行一次原创 2011-12-02 20:08:04 · 1996 阅读 · 0 评论 -
数据结构之快速排序
/*3. 编写一个快速排序的算法,并且在main函数中验证其功能已实现*快速排序(Quick Sort)又称划分交换排序,基本思想:在待排序的n*个记录中记录中任取一个作为“基准”,将其余记录分为两组,第一组中*各记录的键值均小于或等于基准的键值,第二组中各记录的键值均大于*或等于基准的键值,而基准就排在这两组中间(这也是该记录的最终位置),*这称为一趟快速排序(或一次划分)。对所分成原创 2011-12-02 23:48:13 · 1849 阅读 · 0 评论 -
数据结构之选择排序
//编写一个直接选择排序程序,并在main函数中实现其功能/**直接选择排序是一种比较简单的排序方法,它的做法是:首先,*所有记录组成初始化无序区R[1]到R[n],从中选出键值最小的记录,*与无序区第一个记录R[1]交换,新的无序区R[2]~R[n],从中再选出键值*最小的记录,与无序区第一个记录R[2]交换;又形成新的无序区R[3]~R[n]*一直进行这样的选择排序,进行n-1趟排原创 2011-12-09 21:22:13 · 1320 阅读 · 0 评论 -
数据结构之链表合并算法
//链表合并算法(包括一些基本运算)#includeusing namespace std;typedef char datatype; //结点数据类型,假设为chartypedef struct node * pointer; //结点指针类型struct node //结点结构{ datatype data; pointer next;};原创 2011-12-19 22:16:38 · 2370 阅读 · 0 评论 -
数据结构之归并排序
//编写一个归并排序程序,并在main函数中验证结果/**归并排序(Merging Sort)是利用“归并”技术进行排序,所谓归并*是指将若干个已排序好的子表合并成一个有序表 *最简单的归并是将两个有序的子表合并成一个有序表。假设R[low]*到R[mid]和R[mid+1]到R[high]是存储在同一个数组中且相邻的两个有序表*要将它们合并为一个有序表R1[low]到R1[high]原创 2011-12-09 23:43:05 · 1282 阅读 · 0 评论 -
数据结构【线性表】复习题
第2章 线性表一 选择题1.下述哪一条是顺序存储结构的优点?( A )A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?( B )A.线性表采用顺序存储,必须占用一片连续的存储单元。B.线性表采用顺序存储,便于进行插入和删除操作。C.线性表采用链接存储,不必占用一片连原创 2011-12-20 20:14:53 · 7366 阅读 · 3 评论 -
数据结构【栈、队列、串】复习题
第三章 栈和队列一 选择题1. 对于栈操作数据的原则是( B )。A. 先进先出 B. 后进先出 C. 后进后出 D. 不分顺序2. 在作进栈运算时,应先判别栈是否( ① B ),在作退栈运算时应先判别栈是否( ② A )。当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为( ③B )。为了增加内存空间的利用率和减少溢出的可能性原创 2011-12-20 20:40:35 · 7529 阅读 · 0 评论 -
数据结构之【树形结构】复习题
第五章 树形结构 一、选择题1.已知一算术表达式的中缀形式为 A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为(D )A.-A+B*C/DE B.-A+B*CD/E C.-+*ABC/DE D. -+A*BC/DE2.算术表达式a+b*(c+d/e)转为后缀表达式后为( B )原创 2011-12-22 21:36:22 · 6315 阅读 · 0 评论 -
数据结构之【排序】复习题
第7章 排序一、选择题1.某内排序方法的稳定性是指( D )。 A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法 D.以上都不对 2.下面给出的四种排序法中( D )排序法是不稳定性排序法。 A. 插入 B. 冒泡 C.原创 2011-12-22 21:40:49 · 10017 阅读 · 0 评论 -
顺序表与链表的比较
顺序表与链表的比较•顺序表与单链表的比较•存储分配方式、时间性能、空间性能•顺序表与链表的比较•空间比较、时间比较、语言比较 存储分配方式比较Ø顺序表采用顺序存储结构,即用一段地址连续的存储单元依次存储线性表的数据元素,数据元素之间的逻辑关系通过存储位置来实现。Ø单链表采用链接存储结构,即用一组任意的存储单元存放线性表的元素。用指针来反映数据元素之间的逻原创 2011-10-15 20:38:32 · 2592 阅读 · 0 评论 -
数据结构之【数组和广义表】复习题
第 4 章 数组和广义表一、选择题1. 将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元素A6665(即该元素下标i=66,j=65),在B数组中的位置K为( B )。供选择的答案:A. 198 B. 195 C. 197 2. 二维数组A的元素都是6个字符组成的串,行下原创 2011-12-22 21:32:32 · 7115 阅读 · 4 评论 -
数据结构之冒泡排序
/**2. 编写一个冒泡排序的算法,并且在main函数中验证其功能已实现*冒泡排序(Bubble Sort)的基本思想,设想排序R[1]到R[n]垂直放置,将记录*R[i]看作是重量为R[i].key的气泡;根据气泡不能在重气泡之下的原则,从下往*上扫描数组R,凡违反原则的轻气泡,就使其向上“飘浮”,如此反复进行,直到*最后任何两个气泡都是轻者在上,重者在下为止。就好像气泡从水中上冒一原创 2011-12-02 22:11:17 · 1459 阅读 · 0 评论 -
哈夫曼树算法(数据结构C++描述)
//哈夫曼树算法#includeusing namespace std;const int n=5;const int m=2*n-1;const int float_max=20;typedef int datatype;typedef struct { float weight; //定义权重 int parent; //定义双亲在向量中的下标 int lchi原创 2011-11-26 22:28:35 · 3623 阅读 · 0 评论 -
百分制转换为五分制的算法
/*编写一个将百分制转换为五分制的算法(使用if-else语句),要求平均比较次数尽可能少.假设学生成绩分布如下:等级 A B C D E分数 90~100 80~89 70~79 60~69 0~59百分比 0.18 0.23 0.31 0.15 0.13*/#includeusing names原创 2011-11-26 16:50:34 · 10601 阅读 · 1 评论 -
写一个函数DeleteRange删除单链表中结点的值在low 和high之间的结点
/*实验21. 写一个函数DeleteRange删除单链表中结点的值在low 和high之间的结点(low和high的值是多少可自由设计)。并且要在程序中验证其功能实现。(可在实验1的第3题的基础上增加此功能)。此题的源程序保存为 2_a4.cpp。*/#includeusing namespace std;typedef char datatype;typedef struc原创 2011-10-22 10:03:26 · 1724 阅读 · 0 评论 -
顺序栈
/*实验22. 完成对顺序栈结构的定义,以及对顺序栈的各种基本运算的实现(每种基本运算用一个函数来实现)。基本运算包括:初始化Init_sqstack运算、判栈空Empty_sqstack运算、入栈Push_sqstack运算、出栈Pop_sqstack运算、取栈顶元素Gettop_sqstack运算。并且在main函数中分别调用以上各种基本运算的函数来使用,以证明其功能已实原创 2011-10-22 10:04:53 · 1281 阅读 · 0 评论 -
顺序表 -- 基本功能实现(仿书结构)
/* * 题目要求: * 按照课本第2.2节定义的线性表结构,完成对线性表结构的定义,以及对线性表的各种基本运算的实现(每种基本运算用一个函数来实现)。 * 基本运算包括: * 初始化InitList运算、求表长Length运算、插入新节点Insert运算、删除节点Delete运算、定位(按值查找)Locate运算、读表元Get运算。 * 并且在main函数中分别调用以上各种基本运算的转载 2011-09-17 13:36:01 · 1300 阅读 · 0 评论 -
最基本的单链表C++
// 单链表.cpp -- 最基本的单链表C++// Singly-linked list nodetemplate class Link{ public: Elem element; // value for this node Link *next; // pointer to next node in list Link(const Elem& elemva转载 2011-09-17 13:42:20 · 1278 阅读 · 0 评论 -
最基本的顺序表(经典顺序表)
// 顺序表.cpp -- 最基本的顺序表(经典顺序表)// 完整的class.// List abstract class -- 线性表的C++抽象类声明template class List(){ public: // Reinitialize the list. the client is responsible for // reclaiming the storang转载 2011-09-17 13:44:23 · 1334 阅读 · 0 评论 -
(顺序表)设计算法删除所有数字字符
/*2. 一个顺序表中存放字符(只有数字字符和英文字符), 编写算法删除所有的数字字符*/#includeusing namespace std;typedef char datatype;const int maxsize = 100;typedef struct { datatype data[maxsize]; int n;}sqlist; sqlist* Ini原创 2011-10-22 09:55:26 · 3920 阅读 · 0 评论 -
单链表
/*3. 按照课本第2.3.1节定义的单链表结构,完成对单链表结构的定义,以及对单链表的各种基本运算的实现(每种基本运算用一个函数来实现)。基本运算包括:建表Create运算、初始化InitList运算、求表长Length运算、插入新节点Insert运算、删除节点Delete运算、按序号查找Get运算、定位(按值查找)Locate运算、输出单链表中所有结点的数据元素值Displa原创 2011-10-22 09:58:24 · 1351 阅读 · 0 评论 -
(链表实现)写出两个一元多项式相加的算法
/*实验23. 试写出两个一元多项式相加的算法。用链表来存储一元多项式,并且要在程序中验证其功能实现。此题的源程序保存为2_e1.cpp*/#includeusing namespace std;struct node{ int co; //系数 int exp; //指数 struct node * next;};node* Creat() {//尾插法原创 2011-10-22 10:06:20 · 13444 阅读 · 1 评论 -
遍历二叉树的基本运算
/*3. 完成对二叉树的二叉链表结构的定义。并编写算法生成一棵二叉树,以及编写二叉树的先序遍历、中序遍历、后序遍历算法,并且验证各算法功能已实现。*/#includeusing namespace std;typedef char datatype;typedef struct node *pointer; //结点指针类型struct node原创 2011-11-16 09:34:35 · 1809 阅读 · 2 评论 -
对三角矩阵进行压缩存储为一维数组
/*1. 已知矩阵A[5][5]是一个下三角矩阵,如下图要求编写算法把矩阵A采用压缩存储,存储到一维数组B[16]中,并且依次输出B中各元素的值以验证该算法功能已实现*/#includeusing namespace std;const int m=5;const int n=5; const int c=16;int B[c]; //定义一维数组B原创 2011-11-16 09:32:52 · 12534 阅读 · 0 评论 -
直接插入排序算法
//编写一个插入排序的算法,并且在main函数中验证其功能已实现#includeusing namespace std;const int maxsize=100; //排序表容量,假设为100typedef int datatype;typedef struct{ datatype key; //关键字域 datatype other; //其他域} rect原创 2011-11-26 16:12:01 · 1507 阅读 · 0 评论 -
数据结构之【图】部分复习题
第六章 图一、选择题1.图中有关路径的定义是(A )。A.由顶点和相邻顶点序偶构成的边所形成的序列 B.由不同顶点所形成的序列C.由不同边所形成的序列 D.上述定义都不是2.设无向图的顶点个数为n,则该图最多有(B)条边。A.n-1 B.n(n-1)/2 C. n(n+1)/2原创 2011-12-22 21:38:20 · 7058 阅读 · 0 评论