数据结构
xiyou_pen/pen
这个作者很懒,什么都没留下…
展开
-
Linux的open源代码分析报告
1. 在对open源代码的主要函数分析之前我们先来看一下整个打开流程是如何做到的 在内核中要打开一个文件,首先应该找到这个文件,而查找文件的过程在vfs里面是由do_path_lookup或者path_lookup_open函数来完成的。这两个函数将用户传进来的字符串表示的文件路径转换成一个dentry结构,并建立好相应的inode和file结构,将指向file的描述符返回用户。用户随后通过原创 2017-12-12 22:37:00 · 2490 阅读 · 0 评论 -
二叉树
本着构建一颗二叉树的目的是为了更快的搜索数据,因此我们在构建二叉树之初就应该构建一颗有序的二叉树。首先,我们来构建一颗二叉查找树。二叉查找树(BinarySearchTree)是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。1. 构建二叉...原创 2019-08-15 04:35:37 · 128 阅读 · 0 评论 -
list不带头节点,一层指针传入head与两层指针传入head
当list不带头节点的时候,如果想要main函数中的链表改变,当为一层指针传入头结点时,调用的函数必须要有返回值。#include <stdio.h>#include <malloc.h>struct node { int data; struct node *next;};struct node *create(struct...原创 2019-09-06 21:52:11 · 275 阅读 · 0 评论 -
动态规划
1. 矩阵连乘问题动态规划为先将子问题的最优解求出来,然后保存在二维数组中,然后再从下向上求解。for(int len = 1; len <= n; len++) 从1到n设定子值问题的长度,当子问题为不同长度时,求解子问题的最优解,当遍历到n时,为最终问题的最优解。for(int i = 1, j = i+len; j <= n; i++,j++) i为子问题的起始点...原创 2019-09-20 11:29:48 · 178 阅读 · 0 评论