
数据结构
文章平均质量分 93
你好,明天,,
你好,明天。一个今天胜过两个明天。
展开
-
大数加法------C语言代码实现(含负数)
两个符号相同的数,直接相加即可,所得结果符号不变;两数符号不同时,需要对两数的绝对值进行比较,结果的符号同绝对值较大者,值为较大者减去较小者。 以下是正确C语言源代码: #include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int ma...原创 2018-12-21 11:19:45 · 2595 阅读 · 0 评论 -
斐波那契数列(递归及非递归)C/C++实现
递归实现斐波那契数列以下是正确C++源代码:1.递归实现Fibonacci数列:#include<iostream> #include<stdio.h>using namespace std;//Fibonacci数列递归解法 C++ 实现int Fib(int n) { if(n==0) return 0; else if(...原创 2018-12-20 16:58:11 · 39982 阅读 · 2 评论 -
进制转换C语言实现(十进制转换为任意进制)
程序实现功能: 输入一个十进制数和R(表示要转换成R进制),输出转换后的数。 事例 例如:输入 10 2 输出 1010 源代码如下:#include<stdio.h>#include<string.h>//int n,num[15],r,count;int n,r,count;void print( int x ){ ...原创 2018-12-20 21:20:18 · 34210 阅读 · 13 评论 -
数据结构知识点总结
图的存储使用:①邻接矩阵:二维矩阵,如A[i][j]=n(权值)或者A[i][j]=0/1,无线图的邻接矩阵是对称矩阵。①自底向上堆化:会产生“气泡”浪费存储空间,用于插入元素,即先将元素放至数组末尾,上浮。堆的插入和删除效率高,时间复杂度是O(logn),初始化的时间复杂度是O(n)。递归,排序,二分查找,搜索,哈希算法,分治算法,动态规划,字符串匹配算法等。②自顶向下堆化:用于删除堆顶元素,将末尾元素放至堆顶,再向下堆化,下沉。数组,栈,队列,链表,散列表,二叉树,堆,跳表,图,树。原创 2023-10-17 11:09:42 · 510 阅读 · 0 评论 -
十进制转换为二进制非递归栈实现
用栈实现十进制转换为二进制,用到模板库中的关于栈的部分函数。以下是C++源代码:#include<bits/stdc++.h>using namespace std;stack<int> sta;int main(){ int n; while(cin>>n){ while(!sta.empty()) sta.pop(); if(n...原创 2018-12-23 18:06:17 · 714 阅读 · 0 评论 -
数据结构------简单选择排序 C++ 实现
简单选择排序是一种选择排序。 选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 (1)从待排序序列中,找到关键字最小的元素;(2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;(3)从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。 简单选择排序的时间复杂...原创 2018-12-21 17:05:47 · 577 阅读 · 0 评论 -
数据结构------快速排序 C++ 代码
快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键...原创 2018-12-21 12:26:00 · 602 阅读 · 0 评论 -
C/C++源代码实现对随机生成的数据进行排序(直接插入排序、折半插入排序)
代码实现功能如下:1.产生1E4个随机数并对随机数进行排序;2.计算排序所用时间;3.排序方法为直接插入排序和折半插入排序。源代码如下:#include<stdio.h> #include<stdlib.h>#include<time.h> //用到 time 函数 #include<iostream>using na...原创 2018-12-10 15:44:50 · 4400 阅读 · 3 评论 -
数据结构----直接选择排序C++代码
插入排序的基本思想是:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。 直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。 算法步骤: 首先在当前有序区R[1..i-1]中查找R[i]的正确插入位置k(1≤k≤i-1);然后...原创 2018-12-20 21:10:43 · 634 阅读 · 0 评论 -
最小生成树------克鲁斯卡尔算法(数据结构)
树(Tree):如果一个无向连通图中不存在回路,则这种图称为树。生成树 (Spanning Tree):无向连通图G的一个子图如果是一颗包含G的所有顶点的树,则该子图称为G的生成树。生成树是连通图的极小连通子图。这里所谓极小是指:若在树中任意增加一条边,则将出现一条回路;若去掉一条边,将会使之变成非连通图。最小生成树(Minimum Spanning Tree,MST):或者称为...转载 2018-11-06 20:55:56 · 16193 阅读 · 1 评论 -
递归算法遍历二叉树(先序、中序、后序遍历二叉树,求树的深度,结点个数等)
递归实现二叉树基本操作源代码实现:#include<iostream>using namespace std;typedef struct node{ struct node * lchild; struct node * rchild; char data;}BiTreeNode,*BiTree;void CreateBiTree(BiTree &T...原创 2018-10-27 17:37:41 · 8959 阅读 · 2 评论 -
二叉树相关操作代码实现(先序、中序、后序遍历,递归及非递归算法实现,深度,结点数,叶子结点数等代码实现)
二叉树相关操作的实现(先序、中序、后序遍历,递归及非递归算法实现,深度,结点数,叶子结点数等代码实现)以下是源代码:#include<stdio.h>#include<malloc.h>#include<stack>#include<iostream>using namespace std;#define MAX 20typed...原创 2018-10-27 17:30:59 · 2891 阅读 · 0 评论 -
数据结构C/C++代码实现 顺序表栈基本操作
顺序表栈基本操作的实现 源代码:#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;#define MAXSIZE 100//#define Status int#define OK 1#define OVERFLOW -2#define Fals...原创 2018-10-07 16:38:15 · 1000 阅读 · 0 评论 -
数据结构C/C++代码实现 栈链表基本操作
实现栈链表基本操作:#include<stdio.h>#include<stdlib.h>typedef int ElemType;typedef struct linknode{ ElemType data; struct linknode *next;}LiStack;/****************初始化链栈*************...转载 2018-10-07 16:29:09 · 825 阅读 · 0 评论 -
数据结构C/C++语言 循环队列基本操作代码
实现循环队列的基本操作:#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;#define MAXQSIZE 100#define OK 1#define ERROR 0#define OVERFLOW -1#define False 0#def...原创 2018-10-07 15:55:55 · 1669 阅读 · 2 评论