自已设计接口并实现之(不能用系统函数) 自已设计接口并实现之(不能用系统函数)1.将一个字符串的所有字符转换成小写字母?2.定义一个二叉树,并求解其叶子节点数目?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.什么叫系统函数?对C#来讲Win32 API这种才能叫系统函数...2.接口和系统函数有什么关系?3.系统函数和这两个问题有什么关系?如果“系统函数”是指.NET类库...用C#不用.NET类库你干吗学C#?如果这是某个公司的面试题...建议不要去面试了...这公司没前途... 那就是说要求你写两个算法了,1,转换小写的直接用字母的整数值减去一个整数值好象就可以了吧再把它转换回来.2,二叉树的叶子节点的数目,好象就是2^n(n=1,2,3...)如果是求所有节点那就是 ∑2^i(i|0,1,2,3..i..n)就行了 有时函数也称为接口(另一种称法,我好象看到过)楼主可能是指函数的意思.不是指interface 很简单的。1。研究一下ascii码表。作作加减法。具体加减几忘了,自己研究。2。理解二叉树是个啥东西。用node->next==null去判断。 他说的接口应该是泛指,不是特指.NET中的接口吧 挑个简单的写写void strtolower(const char * src, char * dst){ int i = 0; while (src[i] != '\0') { dst[i] = src[i] >= 'A' && src[i] <= 'Z' ? src[i] - 'A' + 'a' : src[i]; ++i; } dst[i] = '\0';} #include <assert.h>#include <stdio.h>#include <stdlib.h>/*define the flag for program */#define ERROR NULLint sum = 0;typedef int DATA;struct node{ DATA d; struct node *left; struct node *right;};typedef struct node NODE;typedef NODE *BTREE;/* Creating a binary tree. */BTREE new_node(void){ return (NODE *)malloc(sizeof(NODE));}BTREE init_node(DATA d1,BTREE p1,BTREE p2){ BTREE t; t = new_node(); if(t == NULL) { return ERROR; } t->d = d1; t->left = p1; t->right = p2; return t;}/* Creating a linked binary tree from an array. */BTREE create_tree(DATA a[],int i,int size){ if(i >= size) return NULL; else return init_node(a[i],create_tree(a,2*i+1,size),create_tree(a,2*i+2,size));}void sumAllNodes(BTREE root){ if(root != NULL) { sumAllNodes(root->left); if(root->left == NULL && root->right == NULL) { sum++; } sumAllNodes(root->right); }}void main(void){ int binaryArr[10] = {5,6,7,8,9,10,11,12,15,18}; BTREE BT = create_tree(binaryArr,0,10); sumAllNodes(BT); printf("\n%d\n",sum); getch();} 我感觉意思是,写一个接口,里边有这二个方法,但实现类不能用系统函数去实现他的功能,要自己写,比如转换小写就不能直接用string 类的方法去转 我还接着回笔,上面说方法实现,可能是这样理解,方法中来判断字母的ASCII值, private override string CharToLower(string str) { StringBuilder strBui = new StringBuilder(str); for (int i = 0; i < strBui.Length; i++) { if (strBui[i] >= 65 && strBui[i] <= 90) { strBui[i] = (char)(strBui[i] + 32); } } return strBui.ToString(); }这是我的理解,另一个方法同理,就是不用原本string.ToLower()方法 楼主的意思就是写个函数接口吗,大家应该明白啊可能java的接口概念和C++中类的头文件中的类公有成员函数概念不太一样。楼主说的比较明白我觉得。 求教关于数组中删除元素的问题 我想在一个页面里面加入JS的判断 保研失败了,第一次发帖散分! 请问网络传输大文件,怎样才能获取最佳性能? 如何将F1-F8在我winform中定义为快捷键 请问如何做成.EXE安装文件 用Google二维码识别程序库zxing开发的识别程序,为什么有的能识别,有的识别不了 DataGrid双击Cell问题,为什么事件不响应??? 水晶报表出错了,求助。 c#的服务程序编设成DLL后能不能被ASP所调用, C#的DataGridView即时更新问题 做过集装箱堆场项目的进来,都有分拿哦.
它转换回来.2,二叉树的叶子节点的数目,好象就是2^n(n=1,2,3...)如果是求所有节点那就是 ∑2^i(i|0,1,2,3..i..n)就行了
{
int i = 0; while (src[i] != '\0')
{
dst[i] = src[i] >= 'A' && src[i] <= 'Z' ? src[i] - 'A' + 'a' : src[i];
++i;
} dst[i] = '\0';
}
#include <stdio.h>
#include <stdlib.h>
/*define the flag for program */
#define ERROR NULLint sum = 0;typedef int DATA;struct node{
DATA d;
struct node *left;
struct node *right;
};typedef struct node NODE;
typedef NODE *BTREE;/* Creating a binary tree. */
BTREE new_node(void)
{
return (NODE *)malloc(sizeof(NODE));
}
BTREE init_node(DATA d1,BTREE p1,BTREE p2)
{
BTREE t; t = new_node(); if(t == NULL)
{
return ERROR;
} t->d = d1;
t->left = p1;
t->right = p2; return t;
}/* Creating a linked binary tree from an array. */
BTREE create_tree(DATA a[],int i,int size)
{
if(i >= size)
return NULL;
else
return init_node(a[i],create_tree(a,2*i+1,size),create_tree(a,2*i+2,size));
}void sumAllNodes(BTREE root)
{
if(root != NULL)
{
sumAllNodes(root->left); if(root->left == NULL && root->right == NULL)
{
sum++;
}
sumAllNodes(root->right); }}
void main(void)
{
int binaryArr[10] = {5,6,7,8,9,10,11,12,15,18};
BTREE BT = create_tree(binaryArr,0,10);
sumAllNodes(BT);
printf("\n%d\n",sum);
getch();
}
string 类的方法去转
方法中来判断字母的ASCII值,
private override string CharToLower(string str)
{
StringBuilder strBui = new StringBuilder(str);
for (int i = 0; i < strBui.Length; i++)
{
if (strBui[i] >= 65 && strBui[i] <= 90)
{
strBui[i] = (char)(strBui[i] + 32);
}
} return strBui.ToString();
}
这是我的理解,另一个方法同理,就是不用原本string.ToLower()方法
可能java的接口概念和C++中类的头文件中的类公有成员函数概念不太一样。
楼主说的比较明白我觉得。