博文

泰勒公式[zt](2008-01-31 10:59:00)

摘要:链接: http://baike.baidu.com/view/422108.htm......

阅读全文(1731) | 评论:0

冒泡排序法的几种实现(2007-02-20 22:22:00)

摘要:    一、 汇编实现(基于51单片机)         ORG 0000H         MOV R1,#0AH  ;长度送R1         MOV R0,#50H  ;A=50H         MOV A,#0AH   ;A=0AH INIT0:  MOV @R0,A    ;将A内的值赋给R0指向的地址,(50H)= A         DEC A       ;A的值自减1         INC R0      ;R0的值自加1,实现指针的向上偏移,R0=51H         DJNZ R1,INIT0     PXCX:   MOV R3,#50H  ;R3=50 QL4:    MOV A,R3     ;指针送A=50H         MOV R0,A     ;R0=50H         MOV R7,#0AH  ;长度送R7=0AH         CLR 00H ......

阅读全文(4123) | 评论:0

一种封装报文的方法(2007-02-04 22:05:00)

摘要:  假设需要封装的报文为pucMBufMsg,该缓存前RESERVED_LEN个字节预留为(报文信息+MAC+UDP+IP),从第RESERVED_LEN +1个字节为数据。具体使用方法如下:      #define RESERVED_LEN 100  /*预留假设100个字节*/   ULONG *p =  (ULONG*)pucMBufMsg;  /*定义ULONG型指针指向报文*/      p[0] = ulIndex;   /*第一个4字节可以放置唯一标识,或用户标识,用于区别*/      p[1] = (ULONG)(pucMBufMsg + RESERVED_LEN);   /*指向数据取*/      p[2] = ulLen;     /*数据的有效长度*/   当我们需要再往缓存里追加数据时,比如希望进行IP封装时只需做如下操作     ULONG IPHeadLen = 20; /*20B*/      p[1]  -=  (ULONG*)(UCHAR*)p[1]- IPHeadLen );   /*指向新的数据区*/      p[2]  +=  IPHeadLen ;     /*数据的有效长度*/         memcpy((void*)p[1], pucIPHead,  IPHeadLen);      可以将以上的一些操作进行如下的封装:   /*从MBUF中取报文首指针*/ UCHAR * MBUF_MTOD(UCHAR *pMbuf) {     ULONG ......

阅读全文(2811) | 评论:0

二叉树的相关操作(转载)(2006-03-28 10:03:00)

摘要:二叉树的相关操作,转载http://www.programfan.com/club/showbbs.asp?id=135842 作者:lyt8604@sohu.com #include "stdio.h"#include "malloc.h"#include "stdlib.h"#define OK 1#define MAXLEN 100typedef int ElemType;typedef struct bnode{  ElemType data;  struct bnode *left,*right;}bnode,*btree;int creat(btree &b)//创建二叉树并向树输入结点{  void insert(btree &b,bnode *t);  int x;  bnode *s;  b=NULL;  scanf("%d",&x);  while(x!=0)  {   s=(bnode *)malloc(sizeof(bnode));   s->data=x;   s->left=NULL;   s->right=NULL;   insert(b,s);   scanf("%d",&x);  }//输入结点以0结束  return OK ;}void  insert(btree &b,bnode *s)//向树中插入结点{  if(b==NULL) b=s;  els......

阅读全文(2437) | 评论:0

数组与链表等顺序表逆置(2006-03-27 14:09:00)

摘要:一)数组的逆置(1)算法#indclude<stdio.h>#define N  8main(){     int array[N] = {100,90,80,70,60,50,50,40};    int i,j,t;    for(i=0,j=N-1;i<j; i++, j--)         {                 t        = array[i];         array[i] = array[j];         array[j] = t;     }     for(i=0,i<listsize;i++)          printf("%d",qlist.data[i])}(2)时间复杂度由于只需循环N/2即可完成逆置,所以时间复杂度为O(N/2).(二)单向链表的逆置(1)算法//定义结构体struct  t_node{  int data;  struct t_node *next;};//定义别名typedef struct&......

阅读全文(4187) | 评论:0

单链表逆置(2006-03-27 11:16:00)

摘要:单链表的逆置的实现:   (1)算法struct link{  int data;  struct link *next;};link reverse(link x){  if( NULL==x )    return NULL;    link t=NULL;  link r=NULL, y=x;  //(0)  while(y!=NULL)  {    t = y->next;   //(1)    y->next = r;   //(2)    r = y;         //(3)     y = t;         //(4)   }  return r;     //返回逆置后的链表}(二)原理(0)(1)(2)(3)(4)分别对应以上程序的各序号第一次while循环-------------------------------------------(0) r=NULL, y=xr=NULL    a    --->    b  &nbs......

阅读全文(14821) | 评论:9

单向链表的插入、查找和遍历方法(2006-03-25 15:23:00)

摘要:#include<stdio.h>#include<conio.h> #define N 3 int Link_Length = N; //记录链表的长度 //定义结构体struct  t_node{  int data;  struct t_node *next;}; 定义别名typedef struct  t_node Node; //定义链表变量Node  * example_link = NULL; /**功能:获取指定位置的节点的地址*输入:plink=链表,i=索引位置,从零开始*输出:无*返回值:索引节点的地址*/Node * get(Node *plink,int i){   if(NULL == plink)     return NULL;   int count = 0;  Node * pNext = plink;    while(count<i && pNext != NULL)  {    count++;    pNext = pNext->next;  }  return pNext;}//endget() /**功能:向指定链表中的指定位置前插入节点*输入:plink=链表,x=新节点的值,i=插入位置*输出:plink=插入节点后的新链表*返回值:成功返回true, 否则为false*/bool Insert(Node *&plink,int x,int i){     Node *s = NULL; //新节点   Node *q = NULL; //中间变量  //构建新节点   s = (node *)malloc( sizeof(node) );    if( s == NULL )        return false; &nb......

阅读全文(4042) | 评论:1

关于双向链表的一些分析(2006-03-25 14:59:00)

摘要:跟大家门交流一下:一、插入操作(insert)(一)基本原理    双链表就好像是手拉手站成一排的人,每个人的右手(next)拉着下一个人,左手(prior)拉着前一个人,每两个人之间有两支手互联.插入操作实际是向队伍中增加人员,他需要拉上左右两边的人,即共三个人要发生关系,由于每两个人之间有两支手互联,所以要发生4次操作.如已知节点q,p,需插入s,(称为原型吧).----------------------------------    q->next    --->q          p        <---    p->prior --------------------------------- 现在假设需插入节点s,则需进行以下4次操作: ----------------------------------------- (1)(2)完成q与s的握手               (1)    q->next  = s;       (2)    s->prior = q;     q->next    --->q          s        <---    s->prior -----------------------------------------(3)(4)完成s与p的握手  ......

阅读全文(2343) | 评论:0

大家好,试试我的blog(2006-03-24 15:20:00)

摘要:大家好,试试我的blog,欢迎大家光临!!......

阅读全文(3224) | 评论:1