![](https://img-blog.csdnimg.cn/20200406105444352.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法基础代码实现
文章平均质量分 72
个人学习笔记
程序员的脱发之路
在脱发的路上越走越远
展开
-
C++小案例-简单的字符串加密
题目描述 输入一串字符串,实现字符串的加密解密功能#include <stdio.h>#include <stdlib.h>#include <string.h>//函数encode()将字母顺序推后n位,实现文件加密功能void encode(char str[],int n){ char c; int i; for(i=0;...原创 2019-04-01 19:25:05 · 1572 阅读 · 0 评论 -
C++小案例-厨房案例
题目描述小白想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。输入描述:每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。输出描述:输出一行一个数字表示完成所有料理需要多少种不同的材料。示例输入BU...原创 2018-12-25 10:47:58 · 1145 阅读 · 0 评论 -
C++小案例-利用数组计算n(防止溢出)
输入一个整数n,输出n!//计算n!//计算n!#include<stdio.h>int main(){ int n=0; scanf("%d",&n); int num[300] = {1}, len = 0, rem = 0, i, j; for(i = 2; i<=n; i++)//将每次的阶乘结果在数组中倒序存储,每次与i...原创 2019-04-01 20:40:26 · 408 阅读 · 0 评论 -
二叉树深度优先遍历-非递归实现
二叉树深度优先遍历的非递归实现一、先序遍历1.算法思路2.代码实现二、中序遍历1.算法思路2.代码实现三、后序遍历1.算法思路2.代码实现一、先序遍历1.算法思路非递归遍历需要用栈实现。在先序遍历中,需要先将根节点压入栈中,然后不断对栈中的节点进行循环遍历。首先进行出栈操作,获取当前出栈节点的数据,之后将当前节点右孩子节点压入栈中(若存在),然后将左孩子节点压入栈中(若存在)。之后开始下一轮循环。注:因为栈是先进后出,所以先让右孩子进栈,这样下一轮循环时出栈的就是左孩子。(符合根左右的标准)2.原创 2021-03-03 15:52:35 · 1192 阅读 · 1 评论 -
二叉树的创建-JavaScript
用JavaScript构建二叉树一、二叉树二、结点设计三、构建二叉树一、二叉树二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。例如:二、结点设计一颗二叉树的结点设计一定要有如下内容:a)结点元素,data域,用来存储数据,其可以是int,char等基本的类型,同时也可以是struct等这些复杂的复合数据类型。b)左孩子结点,left指针,总是用来指向当前结点的下一层的左边结点,其属于一种指针原创 2021-03-03 10:30:48 · 441 阅读 · 0 评论 -
二叉树深度优先遍历-递归实现
二叉树深度优先遍历的递归实现一、深度优先遍历二、先序遍历1.算法思路2.代码实现三、中序遍历1.算法思路2.代码实现四、后序遍历1.算法思路2.代码实现一、深度优先遍历对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。要特别注意的是,二叉树的深度优先遍历比较特殊,可以细分为先序遍历、中序遍历、后序遍历。具体说明如下:先序遍历:对任一子树,先访问根,然后遍历其左子树,最后遍历其右子树。即:根、左、右中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树。即:左、根、右原创 2021-03-03 10:19:41 · 2655 阅读 · 0 评论 -
1-顺序表的删除操作
删除顺序表指定部分元素题目从给定顺序表中删除i~j的所有元素(包括i,j)。以顺序表:0、1、2、3、4、5、6、7、8、9、10、11为例,i取2,j取6。#define MAXLISTSIZE 20//定义列表最大尺寸#define LISTINCREMENT 5#define OVERFLOW -1#include<iostream>#include<mall...原创 2019-04-05 23:18:57 · 2860 阅读 · 0 评论 -
2-顺序表的逆置操作
逆置链表题目创建一个长度为11的线性单链表:0、1、2、3、4、5、6、7、8、9、10。并将其逆置,要求逆置过程不能创立新结点。#include<iostream>#include<malloc.h>#define OVERFLOW -1using namespace std;typedef int ElemType;//建立链表结构体typedef s...原创 2019-04-07 22:35:15 · 696 阅读 · 0 评论 -
3-顺序表的拆分
拆分顺序表将一个长度为10的线性单链表:0123456789中的偶数取出,放到另一个单链表中,要求保持原来顺序。#include<iostream>#include<malloc.h>#define OVERFLOW -1using namespace std;typedef int ElemType;typedef struct LNode{ Ele...原创 2019-04-15 21:31:04 · 1232 阅读 · 0 评论