上一页 1 ··· 4 5 6 7 8 9 10 11 下一页
摘要: 思想为:设置两个指针,一个步长为1,另一个步长为2,依次后移,如果相遇且都不为空,则有环。与这个类似的问题包括:怎么快速检测出一个巨大的链表中的死链?或者如何找出一个单链表的中间节点?代码为:bool loop(node* head){bool flag = true;if (head == NULL){ flag = false;}node* one = head;node* two = head->next;if (two == NULL){ flag = false;}while (one != two){ if (one != NULL) { one = one->next 阅读全文
posted @ 2012-02-03 09:32 zp_Alex 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 思想为:head指针不断后移,指针反向即可,代码为:#include <stdio.h>#include <conio.h>#include <malloc.h>#include <stdlib.h>typedef struct node{int data;struct node *next;}node,*LinkList;void creat(LinkList &L){node *p,*q;L=(LinkList)malloc(sizeof(node));if (L==NULL){exit(0);}L->next=NULL;L-& 阅读全文
posted @ 2012-02-03 09:29 zp_Alex 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。 思路:同样是用递归求解。可以考虑求长度为n的字符串中m个字符的组合,设为C(n,m)。原问题的解即为C(n, 1), C(n, 2),...C(n, n)的总和。对于求C(n, m),从第一个字符开始扫描,每个字符有两种情况,要么被选中,要么不被选中,如果被选中,递归求解C(n-1, m-1)。如果未被选中,递归求解C(n-1, m)。不管哪种方式,n的值都会减少,递归的终止条件n=0或m=0。private void Permutation() { string str 阅读全文
posted @ 2012-02-02 22:29 zp_Alex 阅读(3574) 评论(1) 推荐(0) 编辑
摘要: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好; 其缺点是要求待查表为有序表,且插入删除困难。 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。算法思想: 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功; 否则,利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则,进一步查找后一子表。 重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。算法要求: 1.必须采用顺序存储结构 2.必须按关键字大小有序排列。代码(C#): publ. 阅读全文
posted @ 2012-02-02 19:29 zp_Alex 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 数组与链表的区别 1. 基于空间的考虑 数组的存储空间是静态,连续分布的,估计过大造成空间浪费,估计太小又将使空间溢出机会增多。 而链表的存储空间是动态分布的,只要内存空间尚有空闲,就不会产生溢出; 链表中每个节点除了数据域外,还有指针域,存储密度小于1 (数组为1), 存储空间利用率就越高。 2. 基于时间的考虑 数组中任意节点都可以在O(1) 内直接存储访问,而链表中的节点,需从头指针顺着链表扫描才能取得; 在链表任何位置进行插入和删除,都只需要修改指针,而在数组中插入删除节点,平均要移动一半的节点。 C++语言中可以用数组处理一组数据类型相同的数据,但不允许动态定义数组的大小,即在使用. 阅读全文
posted @ 2012-02-02 18:38 zp_Alex 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 方法的参数是个值得特别注意的地方。方法的参数传递有四种类型:传值(by value),传址(by reference),输出参数(by output),数组参数(by array)。传值参数无需额外的修饰符,传址参数需要修饰符ref,输出参数需要修饰符out,数组参数需要修饰符params。传值参数在方法调用过程中如果改变了参数的值,那么传入方法的参数在方法调用完成以后并不因此而改变,而是保留原来传入时的值。传址参数恰恰相反,如果方法调用过程改变了参数的值,那么传入方法的参数在调用完成以后也随之改变。实际上从名称上我们可以清楚地看出两者的含义--传值参数传递的是调用参数的一份拷贝,而传址参数传 阅读全文
posted @ 2012-02-02 15:39 zp_Alex 阅读(251) 评论(0) 推荐(0) 编辑
摘要: //以下两种方法将获得的数据另存成XML 第一种: using (FileStream lv_YieldFs = new FileStream(saveFileDialog_result.FileName, FileMode.Append, FileAccess.Write)) { using (StreamWriter lv_Yieldsw = new StreamWriter(lv_YieldFs)) { lv_Yieldsw.Write(lv_msg ); lv_Yieldsw.Flush(); }} 第二种: XmlDocument lv_XmlDoc = new XmlDocumen 阅读全文
posted @ 2012-02-02 11:15 zp_Alex 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.cnblogs.com/dflying/archive/2006/04/01/364458.html传入某个属性的set方法的隐含参数的名称是什么?value,它的类型和属性所声名的类型相同。如何在C#中实现继承?在类名后加上一个冒号,再加上基类的名称。C#支持多重继承么?不支持。可以用接口来实现。被protected修饰的属性/方法在何处可以访问?在继承或间接继承与这个类的子类中可以访问。私有成员会被继承么?会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。请描述一下修饰符protected internal。 被protected i 阅读全文
posted @ 2012-02-01 20:25 zp_Alex 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.csdn.net/wokeyid/article/details/2391314一、继承什么是继承:继承是允许重用现有类去创建新类的过程。分类的原则是一个类派生出来的子类具有这个类的所有非私有的属性。1、继承C#中的类:C#不支持多重继承,C#类始终继承自一个基类(如果未在声明中指定一个基类,则继承自System.Object)。派生类继承基类的语法如下:using System;public class Person{//这是基类}public class Student:Person{//这是派生类}注:派生类继承基类时用“:”符号连接,派生类继承基类的所有 阅读全文
posted @ 2012-02-01 20:15 zp_Alex 阅读(1586) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.cnblogs.com/ryb/archive/2006/11/17/563785.html程序代码: 用ASP.NET自己带的解决方案就可以了 Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活。Forms 验证方式对基于用户的验证授权提供了很好的支持,可以通过一个登录页面验证用户的身份,将此用户的身份发回到客户端的Cookie,之后此用户再访问这个web应用就会连同这个身份Cookie一起发送到服务端。服务端上的授权设置就可以根据不同目录对不同用户的访问授 阅读全文
posted @ 2012-02-01 19:43 zp_Alex 阅读(197) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 下一页