随笔分类 - 数据结构与算法
C语言——二叉排序树
摘要:二叉排序树是一种实现动态查找的树表,又称二叉查找树。 二叉排序树的性质: 1. 若它的左子树不为空,则左子树上所有节点的键值均小于它的根节点键值 2. 若它的右子树不为空,则右子树上所有节点的键值均大于它的根节点键值 3. 根的左右子树也分别为二叉排序树 二叉排序树插入节点
阅读全文
C语言——无向带权图邻接矩阵的建立
摘要:#include #include "Graph.h" #define MAX_INT 32767 /* #define vnum 20 #define MAX_INT = 32767 // 邻接矩阵 typedef struct gp { int vexs[vnum]; // 顶点信息 int arcs[vnum][vnum]; // 邻接矩阵 int vexnu...
阅读全文
C语言——栈的基本运算在顺序栈上的实现
摘要:头文件 Seqstack.h main.c
阅读全文
C语言——单链表初始化、求表长、读表元素、插入元素
摘要:头文件Linear.h 因为单链表头结点和插入的结点要动态生成,所以要引入系统头文件<stdlib.h>或者<malloc.h>,不然会报错。 1. 初始化单链表 2. 求单链表的长度:出了头结点的所有结点的个数,包括首结点 3.读表元素 在单链表head中查找第i个元素结点。若找到,返回指向该节点
阅读全文
C语言——顺序表插入、删除、定位运算算法
摘要:说明:将元素x插入到顺序表L的第i个数据元素之前,这个i是从1开始的,但是程序中数组都是从0算起的,不要混淆了。 头文件: header.h 主体文件: main.c 顺序表插入 删除线性表中第i个数据结点 在顺序表中查找值为x的结点
阅读全文
数据结构与算法C语言所有头文件汇总 —— 持续更新
摘要:header.h Linear.h Seqstack.h Lkstack.h SeqQue.h #define maxsize 20//const int maxsize = 20; typedef struct seqque{ int data[maxsize]; int front, rear;
阅读全文
C语言实现整数数组的逆置算法
摘要:读入100个整数到一个数组中,写出实现该数组进行逆置的算法。 方法一: 假设100个整数读入到数组a中,算法f1的思想是分别从数组两端依次将对应数进行交换,即a[i]与a[100 - i - 1]进行交换,i = 0~49。f1所需要的辅助变量为2个整型变量i和temp,与问题的规模无关,其空间复杂
阅读全文
C语言归并排序
摘要:这篇文章是学习了小甲鱼-数据结构与算法结合自考教材编写出的代码,希望自己逐渐在算法造诣上能更上一层楼。 归并排序(递归实现) “归并”一词在中文含义中就是合并的意思,而在数据结构中的定义是将两个或者两个以上的有序表组合成一个新的有序表,就叫归并。 归并排序(Merge Sort)就是利用归并的思想实
阅读全文
三重for循环实现对二维数组的按列排序(JavaScript)
摘要:由C语言联想到的:三重for循环实现对二维数组的按列排序,并且牵扯到数据结构。 自己写的,水平有限,本文属于原创,可能存在错误,忘指正~ 运行结果: 内部循环的原理是利用选择法: 1. 首先顺序执行for循环,执行到最里面的那个循环之后,一直循环最里面的那个循环,然后跳入从内到外的倒数第二个循环中,
阅读全文
数据结构线性存储之连续存储数组的实现
摘要:归纳: 线性 连续存储【数组】 优点:存取速度快(元素可以直接定位到) 缺点:插入删除元素慢(因为要移动其他元素),空间通常有限制 离散存储【链表】 优点:空间没有限制,插入删除元素很快 缺点:存取速度很慢(要一个一个遍历,一个一个找) 线性结构的应用: 1. 栈 2. 队列 非线性 树 图
阅读全文
数据结构与算法之递归
摘要:递归: 定义:一个函数自己直接或间接调用自己 (不要写成死递归) 举例: 1. 1+2+3+4+...+100的和 函数的调用(以C语言为例) 当一个函数的运行期间调用另一个函数时,在运行被调用函数之前,系统需要完成三件事: 从被调函数返回主调函数之前,系统也要完成三件事: 当有多个函数相互调用时,
阅读全文
线性结构的应用一:栈
摘要:栈原理: 初始化原理: 压栈原理: 遍历链栈: 出栈原理: 实现程序:
阅读全文
采用C/C++语言如何实现复数抽象数据类型Complex
摘要:记录一下! 采用C/C++语言如何实现复数抽象数据类型Complex
阅读全文
单链表的插入伪算法和用C语言创建单链表,并遍历
摘要:非循环单链表插入结点伪算法讲解 q插入p之后的伪算法:第一种表示方法:r = p->pNext; // p->pNext表示的是所指向结点的指针域,指针域又是指向下一个结点的地址p->pNext = q; // q保存了那一块结点的地址。q是一个指针变量,存放那个结点的地址。q->pNext = r
阅读全文
数据结构正式篇!初探!!
摘要:用C语言实现数据结构(数组)算法: 这个程序,用数据结构实现了数组的初始化(开辟内存,确定数组长度)、追加、在某一位置插入元素、删除元素、得到元素、判断是否为空、是否已满、排序数组、遍历展示数组元素、倒序数组的 功能。
阅读全文
数据结构复习之C语言malloc()动态分配内存概述
摘要:跨函数使用内存函数内的局部变量,函数被调用完之后,变量内存就没有了。如果是一个动态的变量,动态分配的内存必须通过free()进行释放,不然只有整个程序彻底结束的时候才会释放。跨函数使用内存实例:
阅读全文
数据结构复习之C语言指针与结构体
摘要:一维数组名是个指针常量,它存放的是一维数组第一个元素的地址,它的值不能被改变,一维数组名指向的是数组的第一个元素的地址。(获取)修改一个数组,就是要把数组的第一个元素的地址和数组的长度传递进去就行了。 结构体的实现,两种方式:struct Student st = {1000, "zhangsan"
阅读全文
浙公网安备 33010602011771号