![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
|--------------数据结构
文章平均质量分 71
丁棒儿
人生如棋,我却如卒,虽行动缓慢,但却不曾退却一步。
展开
-
线性表求与运算
题目描述:假设利用两个线性表LA和LB分别表示集合A和B(即线性表中的数据元素即为集合中的成员),现要求一个新的集合A=AUB解题思路:扩大线性表LA,将存在于线性表LB中而不存在线性表LA中的数据元素插入到线性表LA中去。只要从线性表LB中依次取得每个数据元素,并依值在线性表LA中访问,若不存在则插入之。使用顺序表实现的代码如下:#includeusing原创 2014-03-12 10:59:56 · 1268 阅读 · 0 评论 -
2014蓝桥杯B组初赛试题《啤酒和饮料》
题目描述: 啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。 注意:答案是一个整数。请通过浏览器提交答案。 不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。解题思路:我猛一看这个题目还以为是啤酒和炸鸡呢,哈哈~啤酒原创 2014-04-04 16:14:09 · 4093 阅读 · 0 评论 -
C++中单链表的建立和操作
准备数据准备在链表操作中需要用到的变量及数据结构示例代码如下:struct Data //数据结点类型 { string key; //关键字 string name; int age;};struct CLType //定义链表结构 { Data nodeDate; Data *nextNode;};定义了链表数据元素的类型Dat原创 2013-09-26 20:52:25 · 8840 阅读 · 0 评论 -
C++中队列的建立和操作
什么是队列结构队列结构是从数据运算来分类的,也就是说队列结构具有特殊的运算规则。而从数据的逻辑结构来看,队列结构其实就是一种线性结构。如果从数据的存储结构来进一步划分,队列结构可以分成两类。顺序队列结构:即使用一组地址连续的内存单元依次保存队列中的数据。在程序中,可以定义一个指定大小的结构数组来作为队列。链式队列结构:即使用链表形式保存队列中各元素的值。在队列结构中允许对两端进行操原创 2013-10-01 19:33:21 · 6486 阅读 · 0 评论 -
C++中栈结构建立和操作
什么是栈结构栈结构是从数据的运算来分类的,也就是说栈结构具有特殊的运算规则。而从数据的逻辑结构来看,栈结构起始就是一种线性结构。如果从数据的存储结构来进一步划分,栈结构包括两类:顺序栈结构:即使用一组地址连续的内存单元依次保存栈中的数据。在程序中,可以定义一个指定大小的结构数组来作为栈,序号为0的元素就是栈低,再定义一个变量top保存栈顶的序号即可。链式栈结构:即使用链原创 2013-09-29 00:52:47 · 8858 阅读 · 0 评论 -
C++中如何建立一个顺序表
准备数据#define MAXLEN 100 //定义顺序表的最大长度struct DATA{ char key[10]; //结点的关键字 char name[20]; int age;};struct SLType //定义顺序表结构 { DATA ListData[MAXLEN+1];//保存顺序表的结构数组 int ListLen; //顺序表已存结点原创 2013-09-25 00:09:39 · 22034 阅读 · 6 评论 -
线性表练习题5
题目描述:从有序顺序表中删除所有其值重复的元素,使表中的所有元素的值均不同。算法分析:注意该题目给出的是有序的顺序表,所以值相同的元素一定在连续的位置上。我们通过对顺序表进行扫描,我们用k来表示不重复的元素的个数,并令初值为第一个元素;然后用之后的元素依次比较,如果和k对应的元素相同,则对下一个进行比较,如果和k对应的元素不同,则令k+1,然后赋给k对应的元素。原创 2014-04-02 23:55:44 · 1518 阅读 · 0 评论 -
线性表练习题3
题目描述:从有序顺序表中,删除其值在s与t之间(要求s程序分析:类似练习题2:http://blog.csdn.net/qsyzb/article/details/21726769我们仍然可以使用类似的方法解决,但是要注意这里的是有序的顺序表,所以值在s与t之间的数应该是连续的。首先,我们找到第一个大于s的值得位置n1,然后找到第一个最后一个小于tt的位置n2,然后原创 2014-03-21 17:24:44 · 1419 阅读 · 0 评论 -
线性表练习题4
题目描述:从顺序表中,删除其值在s与t之间(包含s和t,要求s分析:这个题目的解决方法和线性表练习题2的解题思路基本一样,可以解决方法有两个,都很容易理解,并且时间复杂度和空间复杂度都不大。“线性表练习题2”是要求删除值等于x的元素,而该题目要求的是删除介于s和t之间的元素,所以只是判断条件不同而已,其他的完全一样。思路一:从头到尾扫描顺序表,我们用i表原创 2014-04-02 10:19:33 · 1805 阅读 · 0 评论 -
线性表练习题2
题目要求:长度为n的顺序表L,编写一个时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数据元素。算法分析:设置两个计数器,一个为i,记录扫描过的元素的个数;一个为j,记录扫描过的非x的元素的个数。从1~n对所有的元素进行扫描,如果该元素不是x,则i++,j++并令i对应的元素赋给j;如果该元素是x,i++,j不变,并将i对应的元素赋给j。原创 2014-03-21 16:41:35 · 3077 阅读 · 0 评论 -
线性表练习题1
题目描述:从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删除元素的值。空出的位置由最后一个元素填补,若顺序表为空则显示出错信息并退出运行。解题思路:搜索整个线性表,查找最小值元素的位置,并记录该位置,然后用最后一个元素的值将其覆盖,并返回最小值。程序代码:#includeusing namespace std;typedef int ElemTyp原创 2014-03-12 10:11:07 · 2455 阅读 · 0 评论 -
对数组中的元素循环左移(或右移)
题目要求:A为一个包含有n个元素的数组{a0,a1,a2,a3,…,a(p-1),ap,a(p+1)…,a(n-2),a(n-1)},现在将A中的元素循环左移p个单位,得到新的数组B={a(p),a(p1),……,a(n-1),a1,a2,……a(p-1)},要求编写程序模拟以上的循环左移过程。解题思路1:建立一个大小为p的一维数组,存放数组A的前p个元素,然后将A中的p~原创 2014-03-12 11:43:02 · 4227 阅读 · 0 评论 -
初识线性表
线性表和顺序表、链表的关系线性表是具有相同数据类型的n个元素的有限序列,属于数据的逻辑结构。逻辑结构最终都是需要通过物理结构来实现的,线性表的逻辑有序性在物理结构有顺序表和链表两种表示方法。顺序表和链表都属于数据的物理结构。顺序表线性表的顺序存储成为顺序表,它用一组连续的存储单元一次存储线性表中的数据元素,从而是逻辑上相邻的两个元素在物理位置上也是相邻的。常使用一维原创 2014-03-11 23:51:19 · 1364 阅读 · 0 评论 -
使用递归函数,输出n个元素的所有子集
题目描述:请编写一个递归函数,用来输出n个元素的所有子集。例如,三个元素{a,b,c}的所有子集是:{},{a},{b},{c},{a,c},{ac},{b,c},{a,b,c}.解题思路:根据子集的定义,集合中的每一个元素在子集中都有两种状态:‘1’表示出现,'0'表示不出现;如果所有的元素都不出现,则该子集是空集,如果所有的元素都出现,则该子集是全集。我们定义一个标记数原创 2014-04-07 17:47:35 · 6337 阅读 · 1 评论