
数据结构与算法
抬头式微笑唔
积少成多
展开
-
线性表
1、定义:n个结点离散分配彼此通过指针相连,每个结点只有一个前驱结点/后续结点首结点没有前驱结点,尾节点无后续结点2、专业术语:头结点:不存储有效数据(加头节点目的主要是方便链表操作)头指针:指向头节点的指针变量(存放头节点的地址)首结点 尾结点尾指针:指向尾节点的指针3、确定一个单链表需要几个参数:1、头指针通过头指针可以推算出链表的其它所有信息4、一个结点如何生...原创 2019-05-21 14:10:53 · 149 阅读 · 0 评论 -
单链表反转
设置三个指针,pHead头指针,prev一直指向初试状态的第一个元素(比如初始状态共1、2、3、4四个元素,在反转的过程中指针prev一直指向元素1),pcur指针指向每次反转的结点;每次将ocur指向的元素反转到头指针后面。如上图示:将元素2反转到头指针和元素1之间1、元素1直接指向元素32、元素为2的结点指向元素13、头指针指向元素24、pcur指针指向元素3(下一个将要反转的结点)...原创 2019-05-22 20:33:43 · 177 阅读 · 0 评论 -
递归
递归定义:一个函数自己直接或者间接调用自己(使用栈来实现)递归边界递归函数举例1、递归求阶乘(直接调用函数自己)#include<stdio.h>int jieC(int n){ if(n == 1) return 1; else return n * jieC(n - 1);}int main(void){ int n; scanf("%d", &...原创 2019-06-26 11:37:00 · 1213 阅读 · 0 评论 -
二叉树的创建与遍历(递归法)
#include<stdio.h>#include<stdlib.h>typedef char TElemType;/*定义结点*/typedef struct BTnode { TElemType data; struct BTnode *lchild; struct BTnode *rchild;}BTNode, *BiTree;/*创建二叉树*/...原创 2019-06-24 21:28:53 · 595 阅读 · 0 评论 -
堆栈
一、顺序结构存储#include<stdio.h>#define maxSize 100/*顺序结构存储栈:一个数组、一个位置指示器*/typedef struct { int data[maxSize]; int top; // 位置指示器}SqStack;/*入栈:1、位置指示器top加1;2、进入元素*/void push(SqStack *st, int ...原创 2019-06-29 19:58:27 · 375 阅读 · 0 评论 -
串—BF算法(简单匹配算法)
串的模式匹配:查找模式串 t 是不是目标串 s 的子串,如果模式匹配成功(在目标串s中找到一个模式串t),t 是s 的字串,返回 t 在 s 中的位置;如果模式匹配不成功,t 不是 s 的子串, 返回 -1.方法: BF算法,也称为简单匹配算法。 采用穷举的思路。从s的每一个字符开始依次与t的字符进行匹配。基本思路:1、从目标串s = "s0 s1…s n-1"的第一个字符开始和模式串t ...原创 2019-07-11 17:07:35 · 2477 阅读 · 1 评论