博文

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

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

阅读全文(1642) | 评论: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 ......

阅读全文(4031) | 评论: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 ......

阅读全文(2675) | 评论: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 100
typedef 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 ;......

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

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

摘要:一)数组的逆置
(1)算法

#indclude<stdio.h>

#define N  8

main()


    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)算法

......

阅读全文(4041) | 评论: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) ......

阅读全文(14682) | 评论: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; //中间变量  //构建新节点
&nb......

阅读全文(3822) | 评论: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 ......

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

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

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

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