数据结构
ACMer_Shadow
Just Going!! 2016年6月6日开始学习Java!学有余力,刷ACM题!
展开
-
【数据结构】-线性表-顺序表-1323: 算法2-1:集合union
1323: 算法2-1:集合union题目链接请点击题目描述假设利用两个线性表LA和LB分别表示两个集合A和B(即:线性表中的数据元素即为集合中的成员),现要求一个新的集合A=A∪B。这就要求对线性表做如下操作:扩大线性表LA,将存在于线性表LB中而不存在于线性表LA中的数据元素插入到线性表LA中去。只要从线性表LB中依次取得每个元素,并依值在线性表LA中进行查访,若不存在,则插入之。上述操作过程可原创 2017-01-14 13:26:51 · 1636 阅读 · 0 评论 -
【数据结构】-线性表-链表 熟练度max=8(考研真题1)
考研真题已知一个带有表头节点的单链表,结点结构为data|next 假设该链表只给出了头指针head。在不改变链表的前提下,设计一个尽可能高效的算法,查找链表中倒数第K个位置上的节点,K为正整数。若查找成功,输出该节点的data值,并且返回1,否则,只返回0. 要求: - 描述算法基本设计思想 - 描述算法详细实现步骤 - 用C\C++\java语言实现代码,关键之处请给出简要注释#inc原创 2017-01-19 15:31:23 · 1116 阅读 · 0 评论 -
【数据结构】-线性表-链表 熟练度max=7(链表差集)
比较数组大小输入3 3 2 1 3 3 2 13 1 1 1 4 1 1 1 23 1 1 1 2 1 1输出A等于B A小于B A大于B#include<stdio.h>#include<string.h>void compare(int a[],int b[],int n,int m){ int i=0; while(i<=n&&i<=m) {原创 2017-01-19 14:50:10 · 456 阅读 · 0 评论 -
【数据结构】-线性表-链表 熟练度max=6(利用递归倒序输出L中的值域)
L指向开始节点,利用递归倒序输出L中的值域#include<stdio.h>#include<stdlib.h>typedef struct LNode{ int data; struct LNode *next;}LNode;void saveListnext(LNode *&L,int x[]){ L=(LNode *)malloc(sizeof(LNode)原创 2017-01-17 21:47:20 · 924 阅读 · 1 评论 -
【数据结构】-线性表-顺序表 熟练度max=5(用一个变量实现min和循环变量i的功能)
int型数组长度小于9,存的数字也小于等于9,只能用另外一个变量i,求出顺序表中的最小值TIPS:以前的做法是,i作为数组的循环变量扫一遍数组,再定义一个Min作为最小值变量存储。Good idea:用i的个位存储min最小值,十位当做循环变量(此方法只适用于特定题型,因为数组长度和存储的数都是小于9的1位数长度)#include<stdio.h>#define maxsize 50/*用i的个原创 2017-01-17 21:24:38 · 471 阅读 · 0 评论 -
【数据结构】-线性表-链表 熟练度max=4(split)
设计一个算法,将一个有头结点A的单链表分解成两个链表A,B,使A中只有奇数,B中只有偶数,并且保持原来的相对顺序输入 10 9 8 7 6 5 4 3 2 1输出A:9 7 5 3 1 B:10 8 6 4 2 #include<stdio.h>#include<stdlib.h>typedef struct LNode{ int data; struct LNode *ne原创 2017-01-17 15:40:48 · 476 阅读 · 0 评论 -
【数据结构】-线性表-链表 熟练度max=3(不建立新节点,使链表L倒序)
要求不建立新节点,使链表L倒序反转前:1 2 3 4 5 6 7 8 9 10反转后:10 9 8 7 6 5 4 3 2 1#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct LNode{ int data; struct LNode *next;}LNode;void saveList原创 2017-01-17 14:16:39 · 462 阅读 · 0 评论 -
【数据结构】-线性表-链表 熟练度max=2
找出链表中最小值输入1,2,5,7,9,3,4,2,3,5输出1#include<stdio.h>#include<stdlib.h>typedef struct LNode{ int data; struct LNode *next;}LNode;void saveLNodehead(LNode *&L,int x[]){ L = (LNode *)malloc原创 2017-01-16 23:33:54 · 337 阅读 · 0 评论 -
【数据结构】-线性表-顺序表 熟练度max=1
设计一个算法,在递增链表中删除值域重复的节点。输入 1 1 2 2 3 4 5 6 8 8输出 1 2 3 4 5 6 8#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct LNode{ int data; struct LNode *next;}LNode;void printLNode原创 2017-01-16 23:19:11 · 444 阅读 · 0 评论 -
【数据结构】-线性表-链表-1326:链表的基本操作【好题】
问题 A: 算法2-8~2-11:链表的基本操作题目描述链表是数据结构中一种最基本的数据结构,它是用链式存储结构实现的线性表。它较顺序表而言在插入和删除时不必移动其后的元素。现在给你一些整数,然后会频繁地插入和删除其中的某些元素,会在其中某些时候让你查找某个元素或者输出当前链表中所有的元素。 下面给你基本的算法描述:输入输入数据只有一组,第一行有n+1个整数,第一个整数是这行余下的整数数目n,后面原创 2017-01-14 22:22:15 · 1098 阅读 · 0 评论 -
【数据结构】-线性表-双向循环链表-1328:链表的基本操作【好题】
算法2-18~2-19:双向循环链表题目描述双向链表是在结点中既保存了后一个结点指针又保存了前一个结点指针的链表。这种链表较单向链表而言能够快速查找某一结点的前后结点。下面给出双向链表的定义、插入以及删除算法描述。输入输入数据只有一组,包含很多行。每行有1~3个整数。第一个整数如果是0,则表示输出双向链表中的所有元素;第一个整数如果是1,表示插入1个整数,其后跟2个整数i、e代表在第i个位置插入e;原创 2017-01-16 15:19:04 · 1152 阅读 · 0 评论 -
【数据结构】-线性表-顺序表-1324: 算法2-2:有序线性表的有序合并
1324: 算法2-2:有序线性表的有序合并题目地址点击题目描述已知线性表 LA 和 LB 中的数据元素按值非递减有序排列,现要求将 LA 和 LB 归并为一个新的线性表 LC, 且 LC 中的数据元素仍然按值非递减有序排列。例如,设LA=(3,5,8,11) ,LB=(2,6,8,9,11,15,20) 则 LC=(2,3,6,6,8,8,9,11,11,15,20) 算法描述如下: 从上述原创 2017-01-14 14:32:50 · 4628 阅读 · 0 评论 -
【数据结构】-线性表-顺序表-1325: 算法2-3~2-6:Big Bang【麻烦】
1325: 算法2-3~2-6:Big Bang题目链接点击题目描述复习考研累了的时候看看一集二十分钟左右的《生活大爆炸》也不失为一种乐趣。在剧中Sheldon可以说是一个极品,真不知Leonard是如何忍受这位极品室友成天的唠叨。 你知道么?Sheldon有一个神秘的小本本,记录了所有他从小开始讨厌的人名。Stuart这位漫画店老板就是小本本的一员哦,谁叫他常常毫不客气地挤兑Sheldon,曾多原创 2017-01-14 16:26:03 · 2612 阅读 · 0 评论 -
【数据结构】-线性表-顺序表-1787:求最大值(竟然这么水的题.....)
1787: 求最大值题目描述输入10个数,要求输出其中的最大值。输入测试数据有多组,每组10个数。输出对于每组输入,请输出其最大值(有回车)。样例输入10 22 23 152 65 79 85 96 32 1样例输出max=152#include<stdio.h>typedef struct{ int data[205]; int length;} List;int main原创 2017-01-14 14:49:54 · 5262 阅读 · 0 评论 -
【数据结构】-线性表 一些要注意的地方
一些注意点链表的引用型为List *&La 不用引用型是 List *La 顺序表引用型为List &La 不用引用型是 List La Tips:用* &a时,如果链表a指向的节点地址本身不变,则用* a即可,比如插入时,只对a后面的节点插入,而a指针指向的节点不变,用* a即可。 如果顺序表用&a,如果是添加删除都必须用&a,因为顺序表是数组形式,改变其中一个,也使得顺序表原创 2017-02-01 22:41:46 · 1705 阅读 · 1 评论