• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

尼古拉斯豆

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

2012年7月11日

数据结构--二叉树

摘要: 最重要的二叉树来了.#include <stdio.h>#define STACK_MAX_SIZE 30#define QUEUE_MAX_SIZE 30#ifndef elemType typedef char elemType;#endifstruct BTreeNode{ elemType data; struct BTreeNode *left; struct BTreeNode *right;};/* 1.初始化二叉树*/void initBTree(struct BTreeNode **bt){ *bt = NULL; return; }... 阅读全文

posted @ 2012-07-11 12:15 尼古拉斯豆 阅读(190) 评论(0) 推荐(0)

算法--最大公约数和最小公倍数

摘要: #include <stdio.h>/* 最大公约数和最小公倍数 算法 ***************************** 欧几里德算法: 其方法是用较大的数除以较小的数,上面较小的除数和得出的余数构成新的一对数, 继续做上面的除法,直到出现能够整除的两个数,其中较小的数(即除数)就是最大公约数。 大数 = 公约数 * x = 公约数 * (y + z); 小树 = 公约数 * y; 大数 % 小数 = 公约数 * z; 小数 % 公约数 * z = 公约数 * (y%z); ... 阅读全文

posted @ 2012-07-11 11:21 尼古拉斯豆 阅读(207) 评论(0) 推荐(0)

2012年7月10日

数据结构--堆--链式存储

摘要: 最小数在根节点,一层比一层大的二叉树.#include <stdio.h>typedef int elemType;struct heap{ elemType *heap; int len; int maxsize;};/* 1.c初始化堆*/void initHeap(struct heap *hbt, int ms){ if(ms < 0) { printf("数组长度参数非法.\n"); system("pause"); } hbt->heap = malloc(sizeof(elemType)); ... 阅读全文

posted @ 2012-07-10 09:45 尼古拉斯豆 阅读(275) 评论(0) 推荐(0)

2012年7月9日

数据结构--串--链式存储

摘要: #include <stdio.h>struct node{ char ch; struct node *next;};/* 1.初始化单链表*/void init(struct Node **h){ *h = (struct node *)mallov(sizeof(struct node)); if(*h == NULL) { printf("空间申请失败...\n"); system("pause"); } (*h)->next = NULL: return; }/* 2.将x节点插入到链表后*/... 阅读全文

posted @ 2012-07-09 15:38 尼古拉斯豆 阅读(238) 评论(0) 推荐(0)

数据结构--队列--链式存储

摘要: 队列一般叫优先级队列.这是跟它的相关应用有关的.#include <stdio.h>#include <stdlib.h> typedef int elemType;struct sNode{ /*队列节点*/ elemType data; struct sNode *next;};struct queueLK{ struct sNode *front; /*队列头指针*/ struct sNode *rear; /*队列尾指针*/};/* 1.初始化链队*/void initQueue(struct queueLK *hq)... 阅读全文

posted @ 2012-07-09 15:14 尼古拉斯豆 阅读(171) 评论(0) 推荐(0)

2012年7月5日

算法--数N的组合方式,由给定的数组元素进行组合--已改进1版

摘要: 这是百度面试一道算法题.当时没答上来,主要是思考方式不对.想算法问题的时候一定要按照电脑的逻辑来,不能按照人脑的逻辑顺序来.(主要还是程序练得不够)举个例子:a+b 的逆波兰式为ab+, 这很简单,但是在思考的时候不要先想把+号拿出来,放到后面,要思考,从左到右电脑如何处理才能得出ab+.这样才能写出程序算法.而不是人脑算法.当时的题目是这样的.人民币有 1元 2元 5元 10元 20元 50 元 100元 这几种币值.问:给定200元,求出有多少种币值组合方式. 币种可重复,比如,200张1元的算一种方式.题目很简单,做起来难.程序逻辑就是int a[] = { a1, a2, a3, a4 阅读全文

posted @ 2012-07-05 16:03 尼古拉斯豆 阅读(306) 评论(0) 推荐(0)

算法--逆波兰式(后缀式)

摘要: /****************************************************************************************************************逆波兰式的作用: 对于实现逆波兰式算法,难度并不大,但为什么要将看似简单的中序表达式转换为复杂的逆波兰式? 原因就在于这个简单是相对人类的思维结构来说的,对计算机而言中序表达式是非常复杂的结构。 相对的,逆波兰式在计算机看来却是比较简单易懂的结构。因为计算机普遍采用的内存结构是栈式结构,它执行先进后出的顺序。如:我们平时写a+b,这是中缀表达式,写成后缀表达... 阅读全文

posted @ 2012-07-05 13:46 尼古拉斯豆 阅读(576) 评论(0) 推荐(0)

2012年7月3日

算法--括号匹配

摘要: 这个算法题以前百度面试的时候考过,今天在复习的时候又看到了.就是通过压栈出栈的方式进行匹配的.#include <stdio.h>#include "栈的链式存储.c"/* 遍历整个栈,从底到顶*/void travelStack(struct sNode *hs){ struct sNode *temp = hs; char arr[100]; /*栈的从底到上遍历是个问题,用数组就会固定大小,也许用指针会好些,满了就再realloc一下*/ int i,n =0; while(temp != NULL) { ... 阅读全文

posted @ 2012-07-03 10:45 尼古拉斯豆 阅读(176) 评论(0) 推荐(0)

2012年7月2日

数据结构--栈--链式存储

摘要: 栈的链式存储跟线性表的链式存储一样,只是添加删除数据的方式不同。编译器:GCC#include <stdio.h>typedef int elemType;struct sNode{ elemType data; struct sNode *next;};/* 1.初始化栈为空*/void initStack(struct sNode **hs){ *hs = NULL; return;} /* 2.向链中插入一个元素(入栈) */void push(struct sNode **hs, elemType x){ struct sNode *temp; te... 阅读全文

posted @ 2012-07-02 15:35 尼古拉斯豆 阅读(194) 评论(0) 推荐(0)

数据结构--栈--线性存储

摘要: 栈就是后进先出,从代码实现来看跟线性表是一样的,只是进出数据的方式不同。如果要进行复杂操作,内部用线性表的操作方式就可以。编译器:GCC#include <stdio.h>typedef int elemType;struct stack{ elemType *stack; /*存储栈元素的数组指针*/ int top; /*存储栈顶元素的下标位置*/ int maxsize; /*存储stack数组的长度*/}; /* 1.初始化栈s为空*/void initStack(struct stack *s,int ms){ s->... 阅读全文

posted @ 2012-07-02 14:47 尼古拉斯豆 阅读(188) 评论(0) 推荐(0)

下一页
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3