![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Data Structure
文章平均质量分 74
lskyne
这个作者很懒,什么都没留下…
展开
-
一步一步写算法--二叉排序树
BST:1,若左子树非空,则左子树上所有结点关键字值均小于根结点的关键值2,若右子树非空,则右子树上所有结点关键字值均大于根结点的关键字值3,左右子树本身也分别是一颗二叉排序树源程序#include #include typedef int ElemType;typedef struct BSTNode{ ElemType data; stru原创 2013-06-13 09:05:49 · 1613 阅读 · 0 评论 -
一步一步写算法--二叉树递归与非递归遍历
源程序递归遍历头文件recursion.h#include "stack.h"void pre_traverse(BiTree T){ if(T!=NULL) { printf("%2c",T->data); if(T->lchild !=NULL) pre_traverse(T->lchild); if(T->rchild!=NULL) pre_tra原创 2013-06-13 09:00:55 · 825 阅读 · 0 评论 -
一步一步写算法--栈
写在stack.h头文件中源程序#ifndef STACK #define STACK #include "stdio.h"typedef char TElemType;typedef struct BiTNode{ TElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*Bi原创 2013-06-13 09:02:19 · 759 阅读 · 0 评论 -
一步一步写算法--堆排序
堆的定义1,L(i)2,L(i)>=L(2i) 且 L(i)>=L(2i+1);大根堆原理对初始序列建堆,就是一个反复筛选的过程。n个结点的完全二叉树,最后一个节点是n/2个结点的孩子,对第m/2和其之前的节点为根的子树摔选,看该节点信息与其左右子结点的值比较,如果不符合条件,交换后,再对交换后的子结点进行判断,也就是不断向下调整的过程源程序://测试数据5原创 2013-06-06 17:03:07 · 925 阅读 · 0 评论 -
打印螺旋矩阵(递归解法)
求职过程遇到的一道面试题,当时没有做出来,回来想出几种方法,其中大多是“蛮力”解法,不得不陷入一堆的i、j 循环之中。最后想出一种递归解法,现记录如下。题目如下:输入N, 打印 N*N 螺旋矩阵比如 N = 3,打印:1 2 38 9 47 6 5 N = 4,打印:1 2 3 412 13 14 511 16 15 610 9原创 2013-09-26 00:03:22 · 1686 阅读 · 0 评论 -
排列组合问题
排列:#include #include void swap(int *a,int *b){ int flag; flag=*a; *a=*b; *b=flag;}void print(int *s,int len){ for(int i=0;i<len;i++) printf("%d ",s[i]); printf("\n");}void pailie(i原创 2013-08-29 22:23:14 · 865 阅读 · 0 评论 -
递归和非递归方法打印螺旋矩阵
之前考虑的是方阵,现在是矩阵#include "stdio.h"#include void SetMatrix1(int **matrix, int x, int y, int k) { int start=1; if(x==y) matrix[x/2][y/2]=x*x; for(int d=0;d<k;d++) { for (int i = d; i < y-1-d;原创 2013-10-06 20:30:00 · 3383 阅读 · 0 评论 -
顺时针打印数组
题目:C++利用二维数组的方法打印一个n*n的数字螺旋方阵。这个数字方阵的特点是:以左上角1开始向下,数字以外圈向里按自然数顺序转圈递增,一直到中心位置的n2为止。例如n =31 8 72 9 63 4 5源代码:#include #include #include int main() { int N,*b,d,**a; cout<<"p原创 2013-09-25 22:24:22 · 2172 阅读 · 0 评论 -
求字符串的最长不重复字串
假设有一个字符串“abcdebfgh”那么最长不重复字串是"cdebfgh",长度是7解题思路:1、用一个二维数组 bits[26][2],存储每个字符ch('a'-'z')的信息。bits[ch-'a'][0]的值为0表示ch在字符串中还没有出现,为1表示已经出现过,bits[ch-'a'][1]存储字符ch在字符串中出现的位置;2、maxLen记录最长不重复字串长度,初始为0;转载 2013-08-31 10:42:34 · 2955 阅读 · 2 评论