C,C++数据结构
文章平均质量分 50
包括链表,队列,栈,二叉树,排序等算法的实现
chde2Wang
滴水穿石
展开
-
函数声明是形参类型省略
如果参数类型省略,默认为int类型。(此为古老写法)#include<stdio.h>float average(a,n)int a[];{ int j; float s=0; float aver; for(j=0;j<=0;j++) { s+=a[j]; } aver=s/n; return aver;}main(){ int a[12]={10,4,2,7,3,12,5,34,5,9,6,8}; printf("the average原创 2021-06-27 10:40:04 · 1017 阅读 · 0 评论 -
C语言中数组越界访问造成死循环现象
大家请看这样一段代码(工具:VC++6.0):#include <stdio.h>int main(int argc, char *argv[]){ int i; int arr[10];/* 这里注意循环变量i与数组arr的定义顺序 */ for(i = 0; i <= 10; i++)/* 这里越界了 */ { arr[i] = 0; printf("arr[%d] = %d\n", i, arr[i]);...转载 2021-05-12 23:31:52 · 282 阅读 · 0 评论 -
数据结构-树2-二叉树各种函数实现
一、二叉树的递归遍历二叉树的递归遍历.c#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>//二叉树的结点typedef struct BINARYNODE { char ch; struct BINARYNODE *l...原创 2019-05-13 12:24:05 · 435 阅读 · 0 评论 -
数据结构二叉树遍历求后序
注意左右子树的递归参考自https://blog.csdn.net/hou_blog/article/details/50015503原创 2018-09-27 15:52:31 · 147 阅读 · 0 评论 -
数据结构-图及其遍历
图-邻接矩阵#include<iostream>#define MAX_VERTS 20using namespace std;//邻接矩阵 浪费空间class Vertex { //顶点public: Vertex(char lab) { Label = lab; }private: char Label;};class Graph { //图...原创 2019-06-16 21:39:19 · 150 阅读 · 0 评论 -
数据结构-哈希与映射
二叉树映射map#include<iostream>#include<map> //映射(也叫字典),二叉树映射,不是哈希映射using namespace std;int main(){ cout << "二叉树(红黑树)" << endl; map<string, int> m; m["bi...原创 2019-06-14 14:35:02 · 690 阅读 · 0 评论 -
数据结构排序3-堆排序
堆排序思想:假设数组放入完全二叉树中,1、初始化堆:调节父结点与子结点的大小。让所有的子结点都小于父结点。2、将完全二叉树中的叶子结点和根结点进行互换后,继续调整堆。直至结束#include<iostream>#include<stdio.h>#include<stdlib.h>#include<random>#includ...原创 2019-06-13 13:41:12 · 87 阅读 · 0 评论 -
数据结构排序2-希尔,快速,归并排序
希尔排序希尔排序是对插入排序的改进。增加了分组分组插入排序 降低元素个数,然后对每组分别进行插入排序利用分组增量遍历,因为最后必须全部排序一次,然后分别对每组插入排序。把每组的第一个数作为有序序列,要比较的第一个基准数就是第二个#include<iostream>#include<stdio.h>#include<stdlib.h>...原创 2019-06-12 13:28:22 · 200 阅读 · 0 评论 -
数据结构排序1-冒泡,选择,插入排序
冒泡排序 ,选择排序,插入排序#include<iostream>#include<stdio.h>#include<stdlib.h>#include<random>#include<time.h>#include<sys/timeb.h>using namespace std;#define MAX 1...原创 2019-06-10 21:42:44 · 94 阅读 · 0 评论 -
数据结构树4-二叉搜索树2
二叉搜索树.h:#ifndef _二叉查找树_H#define _二叉查找树_H#include<iostream>#include<string>enum Boolean{ FALSE,TRUE};template<class Type>class Element{public: Type key; //方便添加更新数据};...原创 2019-05-23 21:58:08 · 148 阅读 · 0 评论 -
数据结构-树3-红黑树
1、刚开始建立的红黑树的红黑树只有一个指针(实际为结点,它的右子树指向真正的根结点(现在指向空结点)。左子树为空结点,里面的数据为负无穷大)2、实现Insert函数...原创 2019-05-24 13:41:54 · 138 阅读 · 0 评论 -
数据结构-树5-二叉搜索树
#include<iostream>#include<string>using namespace std;//构建二叉树的结构体template< typename T>struct binaryTreeNode{ T element; //数据 binaryTreeNode<T>* leftChild; //左子树指针...原创 2019-05-13 15:03:20 · 145 阅读 · 0 评论 -
数据结构-树1-概念
一、树的性质一个普通树经过做左孩子右兄弟表示后变为二叉树二、二叉树性质完全二叉树判断准则:一棵深度为k的n个结点的二叉树,对树中的结点按从上到下,从左到右的顺序进行编号。如果编号为i的结点和满二叉树中编号为i的结点在二叉树中的位置相同。则这棵二叉树称为完全二叉树。三、二叉树的表示 四...原创 2019-05-13 12:08:53 · 165 阅读 · 0 评论 -
数据结构-队列2-链式存储
队列链式存储方案一seqList.h#include<stdlib.h>#include<stdio.h>struct SEQLINKNODE { struct SEQLINKNODE* next;};struct SEQLINKLIST { struct SEQLINKNODE head; //头结点 struct SEQLINKNODE* b...原创 2019-05-10 13:34:32 · 134 阅读 · 0 评论 -
数据结构-队列1-顺序存储
队列顺序存储LinkList.h#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX_SIZE 1024#define TRUE 1#define FALSE 0typedef struct QUEUELINKLIST { void* data[MAX_SIZE]...原创 2019-05-10 13:31:16 · 181 阅读 · 0 评论 -
数据结构-栈5-栈的应用-后缀转中缀
#define _CRT_SECURE_NO_WARNINGS#include"LinkList.c"#include<stdio.h>#include<stdlib.h>#include<string.h>//遇到数字压栈//遇到符号,取出栈的第一个元素为右操作符,第二个元素为左操作符。计算完毕后压栈typedef struct MYN...原创 2019-06-06 22:22:05 · 126 阅读 · 0 评论 -
数据结构-栈4-栈的应用-中缀转后缀
//碰到数字直接输出//运算符号:与栈顶符号进行优先级比较 //若栈顶符号优先级比运算符号优先级低:此符号进栈(括号优先级最低) //若栈顶符号优先级不低于运算符号优先级:将栈顶符号一直弹出并输出,直到不满足条件之后进栈//左括号:直接进栈//右括号:将栈顶符号弹出并输出,直到匹配左括号//最后将所有元素弹出并输出#define _CRT_SECURE_NO_WARNING...原创 2019-06-06 22:21:28 · 121 阅读 · 0 评论 -
数据结构-栈3-栈的应用-就近匹配
#define _CRT_SECURE_NO_WARNINGS#include"LinkList.c"#include<stdio.h>#include<stdlib.h>#include<string.h>//括号有没有匹配。哪个不匹配就指向哪个。。//扫描字符串//1、非括号字符忽略//2、若遇到左括号,则入栈//3、若遇到右括号,则将栈...原创 2019-06-06 22:17:58 · 98 阅读 · 0 评论 -
数据结构-栈2-链式存储
LinkList.h#include<stdlib.h>#include<stdio.h>#include<string.h>#define MAX_SIZE 1024#define TRUE 1#define FALSE 0//链表结点--存储下一个结点指针typedef struct LINKNODE { struct LINKNOD...原创 2019-05-07 11:29:43 · 227 阅读 · 0 评论 -
数据结构-栈1-顺序存储
LinkList.h:#include<stdlib.h>#include<stdio.h>#include<string.h>#define MAX_SIZE 1024#define TRUE 1#define FALSE 0typedef struct LINKLIST { void* data[MAX_SIZE]; int siz...原创 2019-05-07 11:27:35 · 85 阅读 · 0 评论 -
数据结构-链表4-企业链表
LinkList.h#ifndef LINKLIST_H#define LINKLIST_H#include<stdio.h>#include<stdlib.h>//链表结点typedef struct LINKNODE { struct LINKNODE *next;}LinkNode;//链表typedef struct LINKLIST{...原创 2019-05-05 14:02:09 · 107 阅读 · 0 评论 -
数据结构-链表3-循环链表
LinkList.h#ifndef LINKLIST_H#define LINKLIST_H#define _CRT_SECURE_NO_WARNINGS#include<stdlib.h>#include<stdio.h>#include<string.h>//链表小结点typedef struct CIRCLELINKNODE { s...原创 2019-05-05 13:58:16 · 94 阅读 · 0 评论 -
数据结构-链表2-链式存储
LinkList.h#ifndef LINKLIST_H#define LINKLIST_H#define _CRT_SECURE_NO_WARNINGS#include<stdlib.h>#include<stdio.h>#include<string.h>//链表结点typedef struct LINKNODE { void* da...原创 2019-05-05 13:55:20 · 124 阅读 · 0 评论 -
数据结构-链表1-顺序存储
DynamicArray.h#ifndef DYNAMIC_ARRAY_H#define DYNAMIC_ARRAY_H#define _CRT_SECURE_NO_WARNINGS#include<stdlib.h>#include<stdio.h>#include<string.h> //动态数组结构体typedef struct DY...原创 2019-05-05 13:52:40 · 228 阅读 · 0 评论