- 博客(20)
- 资源 (2)
- 收藏
- 关注
转载 ios_base
// Iostreams base classes -*- C++ -*-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,// 2006, 2007, 2008, 2009, 2010// Free Software Foundation, Inc.//// This file is part
2013-10-21 15:32:30
1611
原创 根据数组名求数组中元素的个数
Type array[N] ;size_t num = sizeof(array) / sizeof(array[0]) ;
2013-10-04 09:58:26
837
原创 欧几里德算法,扩展的欧几里德算法
1.欧几里德算法:求最大公约数unsigned Gcd(unsigned n , unsigned m){ int max = n > m ? n : m ; int min = n + m - max ; int temp ; while((temp = max % min)) { max = min ; min = temp ; } return min ;
2013-09-20 10:28:27
556
原创 素数判断
1.判断给定的正整数n是否为素数//判断正整数n是否为素数(质数)int isPrimeNum(unsigned n){ if(n <= 1) return -1 ; int i , flag = 1 ; for(i = 2 ; flag && i <= sqrt(n) ; ++i) { if(n % i == 0) flag = 0 ; } if(flag) re
2013-09-19 22:14:00
700
原创 平衡二叉树删除某个节点的方法
确认违规节点的位置 首先我们找到待删除的节点Z,如果节点Z的两个孩子均为空,那么将其父节点中对应指向Z的指针置为空,然后删除节点Z。如果节点Z仅有一个孩子,那么将Z节点的父节点中指向Z的指针指向Z仅有的孩子,然后删除节点Z。如果节点Z有两个非空的子节点,那么找到节点Z的中序后继节点Y(即右子树的最左节点),将节点Y的Key值覆盖节点Z的Key值,此时节点Y的两个孩子均为
2013-09-18 10:29:57
3054
原创 平衡二叉树插入某个节点的方法
确定违规节点的位置 每个节点Z均有一个称之为平衡因子Bf的域,它用来存储(左子树的高度-右子树的高度)所得的值,合法的取值只有-1,0,1三种,一旦出现其他值则表示以节点Z为根的子树不是一颗平衡树,此时需要进行调整。 根据二叉查找树的插入规则找到节点Z应该插入的正确的位置,插入后将节点Z的平衡因子置为0,此时节点Z给它的父节点产生了一个增
2013-09-17 23:18:05
2233
1
原创 红黑树插入某个节点的方法
红黑树节点的插入分为两步:第一步与二叉查找树的插入相同,第二步为调整节点着色。 节点插入 新节点Z的两个孩子指向NIL,将节点z链入树的正确位置,将节点z着色为红。 着色调整 Z节点为根节点 直接将根着色为黑 Z节点不是根节点 因为在插入节点z之前,z的父节点的一个孩子是NIL(黑高为1),所
2013-09-17 12:49:57
886
原创 红黑树删除某个节点的方法
红黑树节点的删除分为两步:第一步与二叉查找树的删除操作相似,第二步为调整节点的着色,使其满足红黑树性质。 节点删除 首先查找待删除的节点z,找到它的位置,此时有如下情况需要考虑: 节点z为根节点,即节点z的父节点为NIL节点 节点z的两个孩子均为NIL节点 节点z的两个孩子中仅有一个孩子为NIL 节点z的两个孩子都不是NIL 下面分
2013-09-17 09:39:43
1048
转载 auto_ptr解析
原链接地址:点击打开链接auto_ptr是当前C++标准库中提供的一种智能指针,或许相对于boost库提供的一系列眼花缭乱的智能指针, 或许相对于Loki中那个无所不包的智能指针,这个不怎么智能的智能指针难免会黯然失色。诚然,auto_ptr有这样那样的不如人意,以至于程序员必须像使用”裸“指针那样非常小心的使用它才能保证不出错,以至于它甚至无法适用于同是标准库中的那么多的容器和一
2013-09-14 09:32:50
450
原创 va_list , va_start , va_arg , va_end详解
//头文件:stdarg.h cstdarg//用途:用于参数个数不定的函数处理,可用来访问不知名也不知类型的参数列表//函数形式如下:return_type function_name ( parameter_declarations , ... );va_list一般定义为一个指针,类型为char *va_start , va_arg , va_end的定义如下://计算变量
2013-09-13 19:57:15
569
原创 othr.c
#include "../config.h"#include "../ort.h"#include #include #include "ee.h"//创建任务的线程是master,协作执行的是worker#define WORKER_YIELD 50#define MASTER_YIELD 1000//自旋等待宏,f为假时终止循环#define WAIT_WHILE(f, t
2013-09-02 09:31:48
8716
原创 ee.h
#ifndef EE_H#define EE_H#include "../config.h"#include #include #include "../sysdeps.h"//此头文件提供线程库对ort的支持//线程库只会提供两只类型:othr_lock_t和othr_key_t,嵌套锁类型不会在线程库外使用//嵌套锁类型结构体,只在线程库内部使用typedef stru
2013-09-02 09:31:03
764
原创 ort_omp.c
#include "ort_prive.h"#include #include //判断当前位置是否在并行域内,判断的依据是当前的eecb的活跃层次数是否为0int omp_in_parallel(void) { return ( __MYCB->activelevel != 0 ); }//获取当前eecb的组内IDint omp_get_thread_num(voi
2013-09-02 09:29:16
809
原创 ort_pools.c
#include "ort_prive.h"#include #include ort_task_node_t* ort_task_alloc(void* (*func)(void *), void *arg){ if(arg != NULL)//任务函数参数非空,那么就返回此参数所在的任务节点 return *((ort_task_node_t **)PP(arg));
2013-09-02 09:28:24
746
原创 ort_tasks.c
#include "ort_prive.h"#include #include #define FAILURE 0#define NO_TASKS_LEFT -1#define NO_VICTIM_LEFT -1//流量控制模块,开启流量控制时任务立即执行而不放到任务队列中去ee_key_t throttle_key;//开启流量控制#define __start_thr
2013-09-02 09:27:31
868
原创 ort_workstealing.c
#include "ort_prive.h"#include #include #define FAILURE 0#define SUCCESS 1/* Allocate memory for my group task queues */inline void ort_task_queues_init(ort_eecb_t *me, int nthr){ int i;
2013-09-02 09:25:57
644
原创 sysdeps.c
#include "sysdeps.h"#include int ort_get_num_procs(void){//获取系统的处理器内核数目 int np; np = sysconf(_SC_NPROCESSORS_ONLN);//从系统信息中获取内核数目信息 if (np <= 0) {//获取内核数目失败,将内核数目设置为1 extern void ort_w
2013-09-02 09:24:30
768
原创 ort_private.h
#ifndef ORT_PRIVE_H#define ORT_PRIVE_H#include "ort.h"#include "pthreads/ee.h"//定义最大的活跃并行域数目限制#define MAXACTIVEREGIONS 50//定义工作分担类型,工作分担有三中:SINGLE、SECTIONS、FOR#define _OMP_SINGLE 0#define
2013-09-02 09:21:41
886
原创 华中科技大学Ubuntu12.04网络认证
在网络中心下载Linux版客户端,地址为http://nc.hust.edu.cn/首先要设置DNS:使用以下命令打开文件resolv.conf:sudo gedit /etc/resolv.conf在文件中添加一行用来指定DNS:nameserver dns_ip两者之间使用TAB间隔。按照客户端的使用说明书操作即可,如:chmod +x ./rj
2013-09-01 08:34:55
872
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人