![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 74
liangqin1993
Java企业级应用开发,C嵌入式系统开发
展开
-
三种排序方法:插入、冒泡、选择
#include #include #include #define SIZE 6void print(int * a, int n);void swap(int * a, int * b);int * max(int * a, int n);int * min(int * a, int n);void insert(int * a, int n,原创 2013-08-01 20:40:40 · 648 阅读 · 0 评论 -
快速排序
设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用中间的数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。一趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)转载 2013-08-12 21:34:32 · 466 阅读 · 0 评论 -
Linux内核双向链表的增删查操作
一、概述 Linux内核中大量使用了链表这个基本数据结构,因此有必要去窥探一下其“葫芦里卖的是什么药”。先来些基本知识点吧:1.数据元素间是一对一关系;2.链表中的元素个数是有限的;3.同一表中各数据元素的类型和长度相同。 二、实现 先上代码,有个感性的认识,后面再解释。 1 #include 2 #i转载 2013-08-13 21:59:16 · 1221 阅读 · 0 评论 -
双向链表初步
linux下的两个头文件和源码(自定义的~)__________________________________________adt_list.h___________________________________________#include #include #include "dt_char.h"struct adt_list{ dat原创 2013-08-11 23:27:26 · 597 阅读 · 0 评论 -
二分法查找
#include //递归算法int recurbinary(int *a,int key,int low,int high){int mid;if(low > high)return -1;mid = (low + high)/2;if(a[mid] == key) return mid;else if(a[mid] > k转载 2013-08-14 09:35:50 · 676 阅读 · 0 评论 -
stack栈入门
#include #include struct node_st {int data;struct node_st *next;};static struct node_st *list = NULL;static int is_empty(void){if (list == NULL) {return 1;}return 0原创 2013-08-14 09:48:59 · 609 阅读 · 0 评论 -
汉诺塔(栈的应用)
#include #define NUM 9 //定义每个柱子最多能放的盘子数(即栈的大小)struct stick{int stick[NUM];int index;} hn[3] = {{{5, 4, 3, 2, 1}, 5},{{}, 0},{{}, 0}};static draw(void){int i, ind原创 2013-08-14 14:55:54 · 1163 阅读 · 0 评论