数据结构
我是一只火鸟
正在学习数据结构中,现在是一名实习生!
展开
-
数据结构-树(一)
树:是n个结点的有限集。n=0时称为空树。 (1)在任意一颗非空树中有且仅有一个特定的称为根(root)的结点。 注意:在数据结构中根节点是唯一的。 (2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集,其中每个集合本身又是一棵树,并称为根的子树。结点的分类 结点的度:就是该结点拥有子树的总数量。 如果度为0的结点称为叶结点或终端结点。度不为0的结点称为非终端结点或分支结点。原创 2017-03-15 14:18:31 · 224 阅读 · 0 评论 -
算法题-开灯问题
#include <stdio.h>#include <string.h>#define MAXN 1000 + 10int a[MAXN];int main(void){ int i,j,n,k,first = 1; memset(a,0,sizeof(a)); scanf("%d%d",&n,&k); for(i=1;i<=k;i++) f原创 2017-04-12 17:36:46 · 461 阅读 · 0 评论 -
算法题-回文数
#include <stdio.h>int main(void){ int i,n = 0,j,sum; for(i=1;i<=1000000;i++){ sum = 0; j = i; while(j){ sum = sum*10+j%10; j/=10; }原创 2017-04-12 17:35:09 · 320 阅读 · 0 评论 -
算法题-倒三角形
#include <stdio.h>int main(void){ int i,j,k; for(i=5;i>=1;i--){ for(k=5;k>=i;k--){ printf(" "); } for(j=1;j<=(2*i)-1;j++){ printf("#");原创 2017-04-12 17:34:39 · 486 阅读 · 0 评论 -
算法题-蛇形填数
#include <stdio.h>#define MAXN 100int a[MAXN][MAXN]; int main(void){ int n,x,y,tot=0; scanf("%d",&n); tot = a[x=0][y=n-1] = 1; while(tot < n*n){ while(x+1<n && !a[x+1][y]) a[原创 2017-04-12 17:33:59 · 262 阅读 · 0 评论 -
算法题-最大公约数和最少公倍数
#include <stdio.h>int main(void){ int n,i,j,temp,p,q; scanf("%d",&n); while(n--){ scanf("%d %d",&i,&j); if(i>j){ temp = i; i = j; j = tem原创 2017-04-03 01:27:37 · 197 阅读 · 0 评论 -
算法题-小明的调查作业
/*#include<stdio.h>#define MAX 1001int main(void){ int i,j,n,val,count = 0; int students[MAX]={0}; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&val); students[val]++;原创 2017-04-02 16:54:06 · 383 阅读 · 0 评论 -
算法题-韩信点兵
/*请教别人写的代码,这是最简单的写法*/ #include<stdio.h>int main(void){ int i,a,b,c; scanf("%d %d %d",&a,&b,&c); for(i=10;i<=100;i++) { if((i%3==a)&&(i%5==b)&&(i%7==c)) {原创 2017-04-01 16:42:56 · 1071 阅读 · 1 评论 -
数据结构-二叉树的存储结构和遍历算法(四)
二叉树的顺序存储结构就是用一维数组存储二叉树的结点,并且结点的存储位置,也就是数组的下标要能体现结点之间的逻辑关系。 顺序存储结构一般只用于完全二叉树。二叉链表 二叉树每个结点最多有两个孩子,所以为它设计一个数据域和两个指针域,我们成这样的链表叫做二叉链表。二叉树的遍历是指从根结点出发,按照某种次序访问二叉树中所有结点,使的每个结点都被访问一次且仅被访问一次。二叉树遍历方法: ①前序遍历 规转载 2017-03-15 16:03:14 · 521 阅读 · 0 评论 -
数据结构-二叉树(二)
二叉树是n个结点的有限集合,该集合或者空集(称为二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。二叉树特点 ①每个结点最多有两棵子树,所以二叉树不存在度大于2的结点。注意不是只有两棵子树,而是最多有。没有子树或者有一棵子树都是可以的。 ②左子树和右子树是有顺序的,次序不能任意颠倒。 ③即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。特殊二叉树原创 2017-03-15 14:52:56 · 388 阅读 · 0 评论 -
算法题-素数求和
#include <stdio.h>#include <math.h>#define MAX 1000int main(void){ int i,j,n,m,sum,a[MAX],flag; scanf("%d",&n); while(n--){ sum = 0; scanf("%d",&m); for(i=0;i<m;i原创 2017-04-04 22:31:39 · 387 阅读 · 0 评论