博文

[转载]两个人的世界,就是天堂……(2006-04-11 16:41:00)

摘要:
那天晚上,她在路灯下捡到一个天使



她把他带回家,发现他只有一只翅膀



她每天细心照顾著他,他们爱上了对方



然而,天使总是忍不住看著窗外的天空,渴望在天堂飞翔的感觉



她看见了,想尽办法找寻另一只翅膀,只为了让他快乐



她发现,「梦想」是打造翅膀的唯一方法,但是……



如果把梦想给了他,她将永远坠入没有梦的世界,而天使,也会离她而去……



最後,她终於下定决心……



这天晚上,她将亲手打造的礼物交给天使,期待看到他开心的表情



才惊觉,天使的另一只翅膀也不见了



他们看著彼此送给对方的天使之翼,觉得幸福的天堂已然降临……



有时候,飞翔,不一定需要翅膀

因为两个人的世界,就是天堂……
......

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

二叉树的相关操作(转载)(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 ;

阅读全文(2402) | 评论: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)算法

......

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

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

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

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

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

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

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