数据结构
文章平均质量分 59
小小海豚
这个作者很懒,什么都没留下…
展开
-
HDU_1043Eight
The 15-puzzle has been around for over 100 years; even if you don't know it by that name, you've seen it. It is constructed with 15 sliding tiles, each with a number from 1 to 15 on it, and all packed原创 2014-04-15 20:52:42 · 441 阅读 · 0 评论 -
HDU 1251_统计难题
Problem DescriptionIgnatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连原创 2014-04-26 15:37:29 · 434 阅读 · 0 评论 -
nyoj_290动物统计加强版
在美丽大兴安岭原始森林中存在数量繁多的物种,在勘察员带来的各种动物资料中有未统计数量的原始动物的名单。科学家想判断这片森林中哪种动物的数量最多,但是由于数据太过庞大,科学家终于忍受不了,想请聪明如你的ACMer来帮忙。输入第一行输入动物名字的数量N(1<= N <= 4000000),接下来的N行输入N个字符串表示动物的名字(字符串的长度不超过10,字符串全为小写字母,并且只有一组测试数据)。原创 2014-04-26 10:50:39 · 453 阅读 · 0 评论 -
对循环链表的应用
围成圈圈报数游戏在天勤oj上面有题目1368,是对循环链表的应用,当然用数组也可以做出来。此处只解释用循环链表的解法。题目描述N 个人围成一圈顺序编号,从1 号开始按1、2、3 顺序报数,报3 者退出圈外,其余的人再从1、2、3 开始报数,报3 的人再退出圈外,依次类推。请按退出顺序输出每个退出人的原序号。要求使用环行链表编程。 这是原题原创 2014-03-11 20:40:00 · 1169 阅读 · 0 评论 -
排序之冒泡排序
冒泡排序每种排序都有其特点。冒泡排序的特点就是冒泡,当然是轻的(即值小的)经过和数列中其他比较,交换后先冒出来。运行原理:它要重复访问要排序的数列,每次比较两个元素,如果他们的顺序和你想要的不一样,就交换他们的值,然后继续访问,比较直到最后一个。此时该数列便是有序的。复杂度:从时间上说:与你输入的原数列的顺序(即需要交换的和移动的次数)有关,若与你期望的顺序相同,则时间复杂度O原创 2014-03-09 13:51:59 · 577 阅读 · 0 评论 -
排序之选择排序
选择排序选择排序:有选择的排序。即给每个位置选择当前元素最小的(或最大的),实现排序。#include#includeusing namespace std;int main(){ int t,k; int a[10]={0,1,2,3,4,5,6,7,8,9}; for(int i=0;i<9;i++){//选择排序// k=i;//k记录i的值// for(int原创 2014-03-09 14:15:04 · 410 阅读 · 0 评论 -
排序之二分插入排序
二分插入排序算法思想简单描述:通过构造二分插入函数,在插入第i个元素时,对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,如果小,则对前半再进行折半,否则对后半进行折半,直到left>right,然后再把第i个元素前1位与目标位置之间的所有元素后移,再把第i个元素放在目标位置上。#include void bin(int a[], int num) //构造一个bin原创 2014-03-09 17:18:35 · 705 阅读 · 0 评论 -
关于单链表
单链表用单链表实现数据的存储和输出:#includeusing namespace std;struct node//定义结构体结点{ int data; node *next;};int main(){ int n; cin>>n; node *head;//定义指向头结点的头指针 node *L ; //定义头结点 L = new node;//头结点申请存储空原创 2014-03-10 17:04:02 · 478 阅读 · 0 评论 -
关于双向链表
双向链表这次用双向链表来存储数据并实现输出。。。先奉上俺的代码:#includeusing namespace std;struct node{//线性表的双向链表存储结构// int data; node *pre;//指向前一个结点的指针// node *next;//指向后一个结点的指针//};int main(){ int a[10]={1,2,3,4,5};原创 2014-03-11 09:40:04 · 530 阅读 · 0 评论 -
关于双向链表之插入+删除
双向链表插入 +删除在双向链表逆序创建好的基础上实现对双向链表的插入和删除。。。奉上俺的代码:#includeusing namespace std;struct node{ int data; node *pre; node *next;};int main(){ int a[10]={1,2,3,4,5}; node *L=NULL; node *h=ne原创 2014-03-11 11:05:24 · 654 阅读 · 0 评论 -
全部合法顺序——对栈和队列的应用
全部合法顺序 ——对栈和队列的应用大家还记得判断出栈顺序是否合法那道题吗。。。现在拓展一下,题目要求输入n,并且输出它出栈的所有合法排序。。。#includeusing namespace st原创 2014-03-17 16:30:59 · 614 阅读 · 0 评论 -
八码数问题
编号为1~8原创 2014-04-17 20:42:04 · 2119 阅读 · 0 评论 -
NYOJ 2 括号配对问题
括号配对问题时间限制:3000 ms | 内存限制:65535 KB难度:3描述现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No样例输入3[(])(])([[]()])样例输出NoNoYes原创 2014-10-09 21:10:00 · 345 阅读 · 0 评论