数据结构算法
yeler082
本科就读于新疆大学软件学院,现阶段在西安交通大学攻读软件工程硕士,研方向为计算机视觉(图像识别、目标检测)
展开
-
【1.1】基本算法举例(上篇)
#include #include /*算法的作用:通过一种数学思想找到问题的解决方案*/ //看商品猜价格void guessPrice(){ int oldPrice,price=0,i=0; printf("请设置商品的价格:"); scanf("%d",&oldPrice); system("cls"); p原创 2017-10-07 20:45:11 · 1137 阅读 · 0 评论 -
剑指offer面试题6:从尾到头打印链表
// 面试题6:从尾到头打印链表// 题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。#include <stack>#include "List.h"//用桟结构实现链表的逆序打印void printListReversedOrder(ListNode *pHead){ std::stack<ListNode *> nodes; Lis...原创 2019-03-31 09:56:25 · 441 阅读 · 0 评论 -
剑指offer面试题5:替换空格
// 面试题5:替换空格// 题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,// 则输出“We%20are%20happy.”。/*思路一:新建一个足够的大小的字符串空间,然后依次将字符拷贝,遇到空格进行三个字符的填充,接着重复执行前面的操作将整个字符串替换完毕。时间复杂度o(n),空间复杂度o(n).思路二:从头到尾扫描字符...原创 2019-03-26 17:34:24 · 380 阅读 · 0 评论 -
剑指offer面试题3:数组中重复的数字
// 面试题3(一):找出数组中重复的数字// 题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,// 也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},// 那么对应的输出是重复的数字2或者3。#include <iostream>...原创 2019-03-26 16:34:16 · 352 阅读 · 0 评论 -
剑指offer面试题4:二维数组中的查找
#include <iostream>#include <vector>#include <string>using namespace std;bool Find(const vector < vector <int> > vec, int rc, int number){ bool found = false; if ...原创 2019-03-15 21:21:16 · 322 阅读 · 0 评论 -
求两个ip地址在子网掩码下是否为同一网段
#include <iostream>#include <string>#include <vector>#include <sstream>using namespace std;class IP{private: union { struct { unsigned char seg0; unsigned c...原创 2019-03-13 21:35:58 · 1137 阅读 · 0 评论 -
【2.5】双向循环链表
一、双向循环链表的结构特点1、每个元素除了拥有指向后继的指针外,还拥有指向前驱的指针;2、便于元素的逆向查找和遍历;3、同时具备循环链表的所有优点。二、双向循环链表的基本结构图三、文件组织方式四、代码实现文件1:utils.h头文件#ifndef _YE_LELE_02#define _YE_LELE_02#include"double_circular_linked_list.h" //...原创 2018-06-09 21:26:30 · 492 阅读 · 0 评论 -
【00】数据结构分支结构图
原创 2018-05-28 13:08:30 · 1080 阅读 · 0 评论 -
【2.4】单向循环链表
一、单向循环链表结构特点。1、所有元素依次衔接,尾部元素链接到首元素。2、适用于环形结构处理的场合。3、便于特定步长循环遍历链表元素。二、单向循环链表的基本结构图。上图分别表示不带头结点和带头结点的单向循环链表。3、文件组织方式4、代码实现文件一:circular_list.h单向循环链表的函数定义#ifndef _YE_LELE_01 #define _YE_LELE_01 typede...原创 2018-04-17 15:25:26 · 1671 阅读 · 0 评论 -
【2.3】链式单链表
一、单链表的结构特征1、采用指针链接一些列的存储单元来存储数据2、动态分配存储空间3、插入或删除元素效率高4、查找元素效率低下单链表常见结构:2、文件组织方式3、linkList.h单链表函数声明文件#ifndef _YE_LELE_01#define _YE_LELE_01typedef int ElemType;typedef int Status;typedef struct LN...原创 2018-04-16 11:14:11 · 399 阅读 · 0 评论 -
【2.2】三元组
1、首先截图说明文件布局2、使用me.h对三元组的函数进行声明。#ifndef _YE_LE_LE_#define _YE_LE_LE_typedef int *Triplet;typedef int Status;typedef int ElemType;Status InitTriplet(Triplet &T, ElemType v1, ElemType v2, E...原创 2018-04-16 10:29:17 · 955 阅读 · 0 评论 -
【2.1】顺序表
第二章序言上一章的两节介绍了常用的算法,这些算法用来处理零散的数据。实际上我们有时候处理的数据之间是存在一种或者多种特定的关系时,我们称这些关系为结构。通常数据之间有三种基本的机构。(1)线性结构:数据元素之间为一对一的关系。(2)树形结构:数据元素之间为一对多的关系。(3)网状结构:数据元素之间为多对多的关系。什么是线性表?线性表示最基本、最简单、也是最常用的一种数据结构。它是一个含有n个节点的...原创 2017-10-10 15:44:40 · 466 阅读 · 0 评论 -
【1.2】算法基本举例(下篇)
1.递归算法定义:是一种直接或者间接调用自身的算法。实质:把求解的问题转换为规模缩小了的同类问题的子问题,然后递归调用函数来表示函数的解,通过多次的递归调用,最终可以求出最小问题的解,再返回上层调用,不断地重复,最终得到解的过程。四个特性:(1)必须有可最终达到的终止条件,否则程序将陷入无穷循环;(2)子问题在规模上比原问题小,或更接近终止条件;(3)子问题可通原创 2017-10-07 22:00:29 · 474 阅读 · 0 评论 -
hash表排序整数,实现复杂度为o(n)
hash表可用于排序整数,现在有一个需求,已知有百万级的数据,例如2019年全国高考理科学生的分数,需要进行一个排序工作,请设计一个代码要求在最短的时间里进行排序。下面用十个数据举例。#include <stdio.h>#include <stdlib.h>int main(int argc, char const *argv[]){ int random...原创 2019-07-26 15:56:16 · 1231 阅读 · 0 评论