![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
认真搬砖,专心搞钱
全栈方向,前后端、数据库都有接触,希望能将自己用到的技术做成一个个专栏
展开
-
数据结构与算法(一): 递归 (斐波那契- 汉诺塔)
总结了有关递归的经典算法,斐波那契和汉诺塔,随着学习的深入,还在不断更新中一、递归是算法中很常见的问题,可以将问题分为两个部分, 一是对应单独某些元素(一般为首元素),直接求解,帮助递归跳出循环;另一个对应剩余部分, 结构与原问题相同, 递归得解二、经典问题1.斐波那契问题形式为: 0 1 1 2 3 5 8 13 后一项为前两原创 2017-09-18 15:20:41 · 714 阅读 · 0 评论 -
循环队列的基本功能实现
循环队列是在顺序队列的基础上为解决“假溢出”问题而提出的队列,具体可看链接http://blog.csdn.net/haikuotiankong7/article/details/78615670,写的很好,可以学习下转载 2017-11-23 16:21:22 · 316 阅读 · 0 评论 -
顺序队列基本操作的实现----入队、出队、打印
以顺序存储结构对队列进行操作----入队、出队、打印并判断队列现有长度(以类的形式)程序如下:queue.h 头文件#pragma once #include class queue{private: int *data; int tail, head, len; // head 用于删除,tail 用于加入新元素public: queue(int inp原创 2017-11-23 15:55:48 · 7823 阅读 · 1 评论 -
顺序存储结构的基本操作实现(以类的方式实现)----插入、删除、查询
之前在博客里也写过顺序存储结构的基本操作,这里主要用类来实现:代码如下:1.arraylist.h 头文件#pragma once #include class arrayList{private: int len, size; int* data;public: arrayList (int input_size) //构造函数 { size = inp原创 2017-11-23 15:06:54 · 1005 阅读 · 0 评论 -
链表栈的基本操作的实现---入栈、出栈、清空
利用链表的结构实现栈的功能---入栈、出栈、清空代码如下:linkstack.h 链表栈的头文件#include class Node {public: int data; Node * next;};class stack{private: Node *head; Node *pcurr; int length;public: stack()原创 2017-11-22 16:50:56 · 5303 阅读 · 0 评论 -
顺序栈的基本操作实现---入栈、出栈、判断是否为空
顺序栈的基本操作实现---入栈、出栈、判断是否为空栈本身就比较简单,栈的基本概念推荐文章:http://blog.csdn.net/hguisu/article/details/7674195实现代码如下:stack.h 栈的头文件:#pragma once #include #define MAX 10 // 注意没有分号class stack{private:原创 2017-11-22 15:15:53 · 11774 阅读 · 0 评论 -
单链表基本操作的实现--创建、插入、查找、删除
单链表基本操作的实现--创建、插入、查找、删除其中,查找和删除分为 按值查找删除和按序号查找删除;附上代码(具体的代码实现见注释解析)linkedlist.h(链表的头文件)#pragma once#include class Node{public: int data; Node* next;};class LinkedList{privat原创 2017-11-22 12:00:39 · 5065 阅读 · 0 评论 -
链表、队列、栈和字符串的相关应用(四)字符串的替换
知识点:字符串题目:请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%s",请按照参数列表的顺序一一替换占位符。若参数列表的字符数大于占位符个数。则将剩下的参数字符添加到字符串的结尾。给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串。保证参数个数大于等于占位符个数。保证原串由大小写英文字母组成,同时长度小于等于500。测试样原创 2017-11-30 11:20:33 · 539 阅读 · 0 评论 -
字符串的操作函数
在做字符串相关题目的时候,发现对字符串的太多操作函数不了解,导致把程序写的太过复杂,所以转载这篇文章,对string 的操作函数做个了解,方便使用http://www.jb51.net/article/41725.htm附上部分内容a) =,assign() //赋以新值b) swap() //交换两个字符串的内容c) +=,append(),pus转载 2017-11-30 10:50:16 · 189 阅读 · 0 评论 -
链表、队列、栈和字符串的相关应用(三)字符串的旋转
知识点:字符串题目:对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边。给定字符串A和它的长度n以及特定位置p,请返回旋转后的结果。测试样例:"ABCDEFGH",8,4返回:"FGHABCDE"思路:以特定位置为转折点,分别进行两次旋转(分部旋转和整体旋转)初始:ABCDEFGH 最终:F原创 2017-11-30 10:34:15 · 280 阅读 · 0 评论 -
链表、队列、栈的相关应用(二)链式A+B
知识点:链表题目:有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。思路:1,考虑相加进位问题2,考虑最高维可能为1 的问题3, 考虑A和B长原创 2017-11-29 15:54:00 · 251 阅读 · 0 评论 -
链表、队列、栈的相关应用(一)链表的回文结构
最近在对学习的链表、队列、栈等进行学习与总结,将遇到的题目总结出来,供大家交流知识点:链表、栈题目:对于一个链表,,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。/*struct ListNode { int val; struct ListNode *next;原创 2017-11-29 13:21:10 · 268 阅读 · 0 评论 -
数据结构学习---线性表顺序存储结构的应用(二):插入操作
顺序表的插入操作:线性表非递减排序,插入一个元素后,使排序仍按照非递减基本思路:检验插入元素与线性表元素的大小,寻找到合适的位置即插入,注意当插入元素大于最后一个元素和小于第一个元素时,需要单独讨论void InsertOperate(int *sequence, int &len, int x){ if (x > sequence[len-1]) //插入值比最后一个大 { s原创 2017-11-07 17:05:29 · 946 阅读 · 0 评论 -
数据结构学习---线性表顺序存储结构的应用(三):融合排序操作
融合排序操作:顺序表a和b升序排序;要求合并成顺序表c,也为升序排列基本思路: 创建新的顺序表c, 依次比较a和b中的大小,按升序放入c 中。 注意将未比较完的剩余的元素放入c中。void ComposeOperate(int *seq1, int *seq2, int &len1, int &len2 ){ //const int len = len1 +len2; vector i原创 2017-11-07 20:00:25 · 558 阅读 · 0 评论 -
数据结构学习---线性表顺序存储结构的应用(一):删除操作
顺序表的删除操作(假设有若干个删除元素x)基本思路: 逐个查询删除元素,一旦出现删除元素,即将该元素删除,将后续元素前移void DeleteOperate(int *sequence, int &len, int x){ //int Loc = 0; for (int i = 0; i < len; i++) { if(sequence[i] == x) { len原创 2017-11-07 16:55:29 · 544 阅读 · 0 评论 -
数据结构学习---线性表顺序存储结构的基本操作
线性表的顺序存储结构的主要操作包括插入、删除和查询等。本文先介绍基本的操作:1.创建线性表void CreateSequence(int *sequence, int len){ cout << "请依次输入数值" << endl; cout <<"共" << len << "个"; int value; for(int count = 0; count < len; c原创 2017-11-07 15:22:49 · 1004 阅读 · 0 评论 -
链表队列基本功能的实现
链表队列基本功能的实现,见链接:http://blog.csdn.net/lfeng_coding/article/details/47614765转载 2017-11-23 16:31:40 · 262 阅读 · 0 评论