
数据结构与算法分析(C语言)
月夕花晨KaCa
雪压枝头低,虽低不着泥土,一朝红日出,依旧与天齐。
展开
-
数据结构与算法分析(C语言描述)(八)栈的链表实现&栈的数组实现
1.栈的链表实现stackli.h typedef int ElementType;/* START: fig3_39.txt */ #ifndef _Stack_h #define _Stack_h struct Node; typedef struct Node *PtrToNode; ...原创 2019-08-25 11:42:16 · 219 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)(九)栈的应用——平衡符号
/*Check if parenthesis ( ), brackets [ ], and braces { } are balanced.栈的应用————平衡符号*//*栈的两种实现方式:链式存储和顺序存储(数组)。栈的一个主要应用是平衡符号。初学者在编写代码并且编译时,难免会因为少写了一个')'和被编译器报错。也就是说,编译器会去匹配括号是否匹配。当你输入了一个'(',很自然...原创 2019-08-25 15:11:49 · 1021 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)(十)队列的链表实现&队列的数组实现
1.队列的链表实现queue.htypedef int ElementType;#ifndef _QUEUE_LIST_#define _QUEUE_LIST_struct QNode;struct Node;typedef struct QNode *QNodePtr;typedef struct Node *PtrToNode;typedef PtrToNode Q...原创 2019-08-25 21:07:27 · 274 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)(十一)第三章课后习题
3.2.The comments for Exercise 3.4 regarding the amount of abstractness used apply here. The running time of the procedure in Fig. 3.1 is OO(LO + PO).void PrintLots(List L, List P) { int Counter;...原创 2019-08-25 22:45:40 · 552 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)(十四)一个数组实现三个栈(多个栈)
使用一个数组实现栈,很容易。使用一个数组实现两个栈,也容易想到,使用两端来构造两个栈。若是使用一个数组来实现三个栈呢。你可能还会想,两端可以构造两个栈。那么在中间某处在开辟一处不就可以实现三个栈了。但是这样做的弊端是你需要知道这三个栈的预期大小才能 合理的找到这个中间点来实现第三个栈的位置。但往往栈的使用情况是不能预期的。更一般的如果我想在一个数组中实现多个栈呢,比如4个5...转载 2019-08-26 23:06:32 · 580 阅读 · 3 评论 -
数据结构与算法分析(C语言描述)(十三)计算后缀表达式
通常人在书写的时候习惯是书写中缀表达式也叫逆波兰式,然而在计算机处理的时候中缀表达式的效率远小于后缀表达式,即操作数在前面,运算符在后面例如:中缀表达式 A+B 后缀表达式AB+A+BC------- ABC*+AB+C*D -------- AB*CD*+D+A/(B_C)-------- D...原创 2019-08-26 21:47:23 · 943 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)(十二)双端队列
代码已跑通,完美运行!Push(X,D):将项X插入到双端队列D的前端;Pop(D):从双端队列D中删除前端项并将其返回;Inject(X,D):将项X插入到双端队列D的尾端。Enject(D):从双端队列D中删除尾端项并将其返回。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <std...原创 2019-08-26 16:14:02 · 549 阅读 · 0 评论 -
二叉树的遍历:先序中序后序遍历的递归与非递归实现及层序遍历
对于一种数据结构而言,遍历是常见操作。二叉树是一种基本的数据结构,是一种每个节点的儿子数目都不多于2的树。二叉树的节点声明如下:typedef struct TreeNode *PtrToNode;typedef struct TreeNode *BinTree;struct TreeNode{ int Data; //为简单起见,不妨假设树节点的元素为int型 ...转载 2019-08-28 17:23:24 · 749 阅读 · 0 评论 -
把后缀表达式转换为表达式树
//简单起见,每个运算数节点存储的为小写英文字母#include <stdio.h>#include <stdlib.h>#include <ctype.h>struct BinTreeNode { char Element; struct BinTreeNode* Left; struct BinTreeNode* Right;};stru...转载 2019-08-28 18:59:36 · 986 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)(十五)二叉查找树
tree.h typedef int ElementType;/* START: fig4_16.txt */ #ifndef _Tree_H #define _Tree_H struct TreeNode; typedef struct TreeNode *Position; typedef...原创 2019-08-28 20:34:18 · 250 阅读 · 0 评论 -
数论 | 秦九韶算法(Horner法则)
写在前面:最近写作业的时候,用到了多项式来构造哈希函数(散列函数),也正因如此,我遇到了秦九韶算法(Horner法则)。秦九韶算法:假定现在有一个n次多项式需要计算。按照朴素算法来计算,我们需要次乘法和次加法。我们知道做乘法的代价是很高的,所以朴素算法是非常低效的。那么,现在引入今天的重头戏——秦九韶算法(Horner法则)。这样,对于一个n次多项式,我们至多需...转载 2019-09-01 21:05:05 · 6528 阅读 · 1 评论 -
浅谈Hash
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。(来源百度百科解释)Hash的特点算法是公开的 对相同数...转载 2019-09-01 21:11:46 · 258 阅读 · 0 评论 -
typedef关键字与结构体、结构体指针的定义
typedef关键字与结构体、结构体指针的定义转载 2019-08-25 11:20:08 · 222 阅读 · 0 评论 -
对typedef的真正理解
首先请看看下面这两句:typedef int a[10];typedef void (*p)(void);如果你能一眼就看出它们的意思,那请不要再往下看了。如果你不太理解,或概念还有些模糊,请继续往下看吧。下面的东西我就直接把人家的东西粘上去吧。自己敲太慢了。呵呵。原文(摘录):typedef用来声明一个别名,typedef后面的语法,是一个声明。本来笔者以为这里不会产生什么误解的,但...转载 2019-08-25 11:19:07 · 354 阅读 · 0 评论 -
C语言指针变量的定义和使用(精华)
C语言指针变量的定义和使用(精华)转载 2019-08-25 10:27:42 · 237 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)(一)运用递归方法快速打印正整数和实数
打印正整数#include <stdio.h>#define PrintDigit( Ch ) ( putchar( ( Ch ) + '0' ) )/* START: fig1_4.txt */ void PrintOut( unsigned int N ) /* Print nonnegative N */ {...原创 2019-08-23 22:41:01 · 382 阅读 · 0 评论 -
#include和 #include"filename.h"的区别
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-08-24 10:27:19 · 415 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)(二)快速求解最大子序列和(联机算法)
最大子序列和#include <stdio.h>/* START: fig2_8.txt */ int MaxSubsequenceSum(const int A[], int N) { int ThisSum, MaxSum, j; ThisSum = MaxSum = 0; for (j = 0; j < N; j++) { ThisS...原创 2019-08-24 13:19:30 · 259 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)(三)对分查找
#include <stdio.h>typedef int ElementType;#define NotFound (-1)/* START: fig2_9.txt */ int BinarySearch( const ElementType A[ ], ElementType X, int N ) { ...原创 2019-08-24 13:30:46 · 395 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)(四)欧几里得算法求解最大公因数和最小公倍数
求最大公因数的算法是欧几里得算法,其原理是gcd(a,b)=gcd(b,a%b),不断辗转相除,到最后一个数变成了0,那么gcd(a,0)=a,就求出了gcd。例如:gcd(12,15)=gcd(15,12%15)=gcd(15,12)=gcd(12,15%12)=gcd(12,3)=gcd(3,12%3)=gcd(3,0)=3。证明可以查阅相关资料,属于数论范畴,这里不赘述。然后是最...原创 2019-08-24 13:43:16 · 370 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)(五)高效率的取幂运算
高效率的取幂运算#include <stdio.h>#define IsEven( N ) ( ( N ) % 2 == 0 )/* START: fig2_11.txt */ long int Pow( long int X, unsigned int N ) {/* 1*/ if( N == 0 )/* 2...原创 2019-08-24 15:55:37 · 379 阅读 · 0 评论 -
c语言链表详解
c语言链表详解(超详细)转载 2019-08-24 21:53:37 · 260 阅读 · 0 评论 -
C语言中“指针”作为“函数参数”时的注意事项
&...转载 2019-08-24 22:03:35 · 630 阅读 · 1 评论 -
数据结构与算法分析(C语言描述)(六)单链表
list.h typedef int ElementType;/* START: fig3_6.txt */ #ifndef _List_H #define _List_H struct Node; typedef struct Node *PtrToNode; typedef PtrToNo...原创 2019-08-24 22:14:57 · 191 阅读 · 0 评论 -
数据结构与算法分析(C语言描述)(七)链表(游标法)
cursor.h typedef int ElementType; #define SpaceSize 100/* START: fig3_28.txt */ #ifndef _Cursor_H #define _Cursor_H typedef int PtrToNode; typedef ...原创 2019-08-25 10:07:45 · 385 阅读 · 0 评论 -
模式识别算法&logistic回归
几种常见模式识别算法整理和总结解释logistic回归为什么要使用sigmoid函数转载 2019-09-03 16:07:09 · 316 阅读 · 0 评论