数据结构与算法
以C语言为例讲解常用数据结构算法
IRQHandler
博客的文章会不定时的进行更新,有错误的地方还望各位指出。
展开
-
C语言--栈的链式存储
上篇博客实现了栈的顺序存储,今天来实现栈的链式存储。上代码:includes.h:#ifndef __INCLUDES_H__#define __INCLUDES_H__#ifdef __cpluscplus extern "C" { #endif #include<stdio.h>#include<string.h>#include<stdlib.h>#include "chain_stack.h"#include "tes原创 2020-09-21 23:20:38 · 284 阅读 · 0 评论 -
C语言--栈的顺序存储
栈的定义(摘自百度百科):栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。下面用C语言实现栈的顺序存储,直接上代码。在includes.h文件里,包含了程序需要运行的所有头文件#ifndef __INCLUDES_H__原创 2020-09-21 23:19:00 · 355 阅读 · 0 评论 -
数据结构与算法--插入排序(Insertion sort)
插入排序也是一种简单的排序算法,其做法就是将数据插入到已经排好序的序列中,形成新的有序序列。对于元素数量比较少的待排序序列来说,插入排序是比较高效的。代码如下:#include <stdio.h>#define ARRAY_LEN 10void array_print(int *array,int array_len);void insert_sort(int *array,int array_len);int main(void) { int a[ARRAY_原创 2020-07-18 17:12:49 · 197 阅读 · 0 评论 -
数据结构与算法--排列(permutation)问题
百度百科关于排列的定义如下:一般地,从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(permutation)。有一个简单的排列问题:假如有a,b,c三个数,它们有多少种排列方式,各是什么?这个题的答案很快就能想到,一共有6种不同的排列方式(abc、acb、bac、bca、cba、cab)。那假如是四个数,五个数呢?接下来我们用C代码来实现这个排列问题。代码如下:#include<stdio.h>#define.原创 2020-07-16 21:41:20 · 415 阅读 · 0 评论 -
数据结构与算法--递归(factorial)
计算阶乘的递归代码如下:#include <stdio.h>#define FUNCTION_TRUE 1#define FUNCTION_FALSE 0void print_loop(void);long factorial(int n);long iterative_factorial(int n);int main(void){ int a = 3; long result = 0; //print_loop();#if FUNC...原创 2020-07-16 21:41:09 · 2442 阅读 · 0 评论 -
数据结构与算法--折半查找(binary search)
折半查找也叫二分查找原创 2020-07-16 21:35:13 · 448 阅读 · 0 评论 -
数据结构与算法--顺序查找(sequential search)
顺序查找原创 2020-07-16 21:30:56 · 571 阅读 · 0 评论 -
数据结构与算法--选择排序(selecttion sort)
草稿原创 2020-07-14 20:10:36 · 200 阅读 · 0 评论 -
数据结构与算法--冒泡排序(bubble sort)
今天分享一下最简单的排序算法:冒泡排序。冒泡排序是由于它排序的方式而得名的,它是一种稳定的排序算法。编程思路:依次比较相邻两个变量,将变量值大的放在变量值小的后面(升序),直到没有任何两个相邻变量可以交换。冒泡排序代码如下:#include<stdio.h>#define ARRAY_LEN 10void array_print(int *a,int num);int swap(int *x,int *y);void bubble_sort(int *a,int原创 2020-07-13 14:20:44 · 242 阅读 · 0 评论 -
数据结构与算法--交换(swap)算法
交换是数据结构最基础的算法,在编程的时候我们经常会遇到需要交换两个变量值的情况,一般我们都会想到建立一个中间变量temp来实现交换两个变量的值,下面以C语言为例介绍如何交换两个变量值。1.使用函数来实现对于初学者来说,最简单的做法是直接在主函数里直接定义temp变量,代码如下:#include<stdio.h>int main(void){ int a,b,temp; a = 10; b = 20; printf("a = %d,b = %d原创 2020-07-13 12:45:18 · 2279 阅读 · 0 评论