展开

关键词

课时37:类与对象:面向对象编程

如果之前接触过其它的编程,例如c++,那么你应该很容易对号入座,Python的self其实就相当于C++的this指针。如果把类比作是图纸,那么由类实例化后的对象才是真正可以住的房子。 通常把_ _init_ _()方法称作造方法,_ _init_ _()的魔力体现在只要实例话一个对象,这个方法就会在这个对象被创建时自动调用(在c++里可以看到类似的东西,叫“造函”)。 ******************三、公有和私有****************** 一般面向对象的编程都会区分公有和私有的类型,像c++和Java它们使用public和private关键字, 也不全是,默认上对象的属性和方法都是公开的,可以直接通过点操作符(.)进行访问:>>> class Person: name = >>> p = Person()>>> p.name为了实现类似私有变量的特征 Person: __name = >>> p = Person()>>> p.

13820

——AVL树(C)

带有平衡因子1、0或-1的点被认为是平衡的。带有平衡因子-2或2的节点被认为是不平衡的,并需要重新平衡这个树。平衡因子可以直接存储在每个节点中,或从可能存储在节点中的子树高度计算出来。 Right = Delete(X, T->Right); else if(T->Left && T->Right) { 要删除的树左右都有儿子 TmpCell = FindMin(T->Right); 用该点右儿子上最点替换该点 right : left); PrintTree(T->Left, T->Element, -1); PrintTree(T->Right, T->Element, 1); }}在实现完成这些函后,我们在 main函中对AVL树进行测试:int main(int argc, char const *argv[]){ printf(Hello Worldn); AvlTree T; Position P; InorderTravel(T); printf(后序遍历二叉树: n); PostorderTravel(T); printf(最大值: %dn, FindMax(T)->Element); printf(最

32521
  • 广告
    关闭

    云产品限时秒杀

    云服务器1核2G首年50元,还有多款热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ——AVL树(C)

    带有平衡因子1、0或-1的点被认为是平衡的。带有平衡因子-2或2的节点被认为是不平衡的,并需要重新平衡这个树。平衡因子可以直接存储在每个节点中,或从可能存储在节点中的子树高度计算出来。 Right = Delete(X, T->Right); else if(T->Left && T->Right) { 要删除的树左右都有儿子 TmpCell = FindMin(T->Right); 用该点右儿子上最点替换该点 right : left); PrintTree(T->Left, T->Element, -1); PrintTree(T->Right, T->Element, 1); }}在实现完成这些函后,我们在 main函中对AVL树进行测试:int main(int argc, char const *argv[]){ printf(Hello Worldn); AvlTree T; Position P; InorderTravel(T); printf(后序遍历二叉树: n); PostorderTravel(T); printf(最大值: %dn, FindMax(T)->Element); printf(最

    39821

    零基础Python-第一个程序

    用课堂上教的方法 Python3 提供了多少个 BIF? 在看来,Python 中什么是最重要的?你赞同吗?缩进! 在看来,缩进是 Python 的灵魂,缩进的严格要求使得 Python 的代码显得非常精简并且有层次(阅读过很多大牛的代码,那个乱......C不是有国际乱码大赛嘛......)。 所以在 Python 里对待缩进代码要十分心,如果没有正确地缩进,代码所做的事情可能和你的期望相去甚远(就像C里边括号打错了位置)。如果在正确的位置输入冒号“:”,IDLE 会自动将下一行缩进! C的话,如果 if( c == 1 ) 写成 if( c = 1 ),程序就完全不按程序员原本的目的去执行,但在 Python 这里,不好意思,行不通,法错误!

    23230

    《零基础学习Python》课后笔记(二):用Python设计第一个游戏

    BIF(Built-in Functions)是Python的内置函,为了方便程序员快速编写脚本程序。1. 用课堂上教的方法Python提供了多少个BIF? 不一样,Python区分大写,这是两个不同的字符串。3. 在看来,Python中什么是最重要的?你赞同吗?缩进! 在看来,缩进是 Python 的灵魂,缩进的严格要求使得 Python 的代码显得非常精简并且有层次(阅读过很多大牛的代码,那个乱......C不是有国际乱码大赛嘛......)。 赞同,在 Python 里对待缩进代码要十分心,如果没有正确地缩进,代码所做的事情可能和你的期望相去甚远(就像C里边括号打错了位置)4.  在一些里,你可把字符串“相加”,比如‘I’ + ‘love’ + ‘allen’就得到 ‘Iloveallen’,这叫拼接字符串。

    60230

    ——链表(C实现)

    提起链表,我们每个人都不会陌生,不管对的掌握如何,都或多或少的听过与用过链表这样的常见的。 链表是线性表的一种,最基础的线性表,在插入与删除时,我们需要对表的整体或部分做移动,为了允许表可以不按照线性的顺序存储,于是链表就应运而生。 但是在查找一个节点,或者访问特定编号的点则需要O(N)的时间。使用链表可以克服组链表需要预先知道的缺点,链表可以充分利用计算机内存空间,实现灵活的内存动态管理。 但是链表失去了组随机读取的有点,同时由于增加了指针域,空间开销较大。不过这在算法与领域是很常见的,用空间换时间,毕竟和熊掌不可兼得。 我的链表是使用C来实现的,那么下面来看一下链表的头文件定义了哪些操作。

    72230

    题目总(C 描述)

    lchild; else q->lchild = s->lchild; free(s); } return 1;}*设 X 和 Y 是表示成单链表的两个串,找出 X 中第一个不在 Y 中出现的字符采用带头点的单链表作为串的存储 q) return p->data; Y 中没有找到 else p = p->next; Y 中找到,继续查找下一个元素 }}2011 年求带头点的单链表 L 中所含元素的个,并给出单链表的示意图 用 C 打印值为 X 的点的所有祖先并分析时间复杂度思路:采用非递归后序遍历,最后访问根节点,当访问到值为 x 的点时,栈中所有元素均为该节点的祖先。 =0){ s.tag = 1; bt = s.t->rchild; 沿右分支向下遍历 }}*L1、L2为两循环单链表的头点指针。m,n分别为点个。 -1; 记录当前区间的标 while (ird ?

    55130

    C |

    C组概述一个体变量中可以存放一组有关联的,如一个学生的学号、姓名、成绩等,如果有10个学生的需要参加运算,显然应该用组,这就是组。 组与之前介绍的值型组的不同之处在于每个组元素都是一个体类型的,他们都包括各个成员项。 C定义组一般形式struct 体名{成员表列}组名;先声明一个体类型(如struct Person),然后再用此类型定义组:体类型 组名。 C使用组注意事项对组初始化的形式是在定义组的后面加上:={初值表列};在定义组时进行初始化,为清晰起见,将每个学生的信息用一对花括号包起来,这样做,阅读和检查比较方便,尤其当量多时 C使用组求五个人的平均成绩#include struct{    char *name; 姓名    float score; 成绩}array[] = { 组    {张三,145.0

    24530

    《零基础学习Python》课后笔记(四):改进我们的游戏

    请问以下代码会打印多少次“我爱C!”while C:     print(我爱C!) 会一直打印直到电脑内存被占用完。字符串‘C’是一个非0值,所以while句判断为真,就会一直打印。 4.Python3中,一个句可以分成多行书写吗?  可以。如果有括号(括号、中括号、大括号),可以在任意地方换行。如果没有,需要断开的地方添加“”字符,表示这一行尚未束。 5.请问Python的and操作符和C的&&操作符有何不同?  编程常用的逻辑:if a and b:#如果a是false,那么跳过b的判断,果直接falseif a or b:#如果a为true,那么跳过b的判断,直接true动动手0.  完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中的代码。

    60650

    C解题之字游戏

    Bob发现洛谷的题集发生了变化哈,应该是增加了不少新题,于是就去随机写了一题,现分享出来: 题目描述‍‍最近被要求参加一个字游戏,要求它把看到的一串字a以i为底(长度不一定,以 00 束), 记住了然后反着念出来(表示束的字 00 就不要念出来了)。 这对的那点记忆力来说实在是太难了,你也不想想的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮编程解决这个问题。‍‍‍‍‍‍输入格式一行内输入一串整,以 00 束,以空格间隔。 输出格式一行内倒着输出这一串整,以空格间隔。 c--; k = a; } for (n = 0; n < b; n++) { printf(%d , k); } return 0;} 运行果如下: ?

    42230

    (C版)系列二】 栈

    栈和队列是两种重要的线性。从角度看,栈和队列也是线性表,但它们是操作受限的线性表,因此,可称为限定性的。但从类型角度看,它们是和线性表大不相同的两类重要的抽象类型。 顺序栈,即栈的顺序存储是利用一组地址连续的存储单元依次存放自栈底到栈订的元素,同时附设指针top指示栈顶元素在顺序栈中的位置。 通常的习惯做法是以top=0表示空栈,但与C组的下标从0开始冲突。 附几个栈的应用举例:3-2-进制转换-栈和队列-第3章-《》课本源码-严蔚敏吴伟民版3-3-行编辑程序-栈和队列-第3章-《》课本源码-严蔚敏吴伟民版3-4-迷宫寻路-栈和队列-第3章- 《》课本源码-严蔚敏吴伟民版3-5-表达式求值-栈和队列-第3章-《》课本源码-严蔚敏吴伟民版3-6-汉诺塔(Hanoi Tower)问题-栈和队列-第3章-《》课本源码-严蔚敏吴伟民版

    75520

    (C版)系列四】 串

    串和表示和实现——定长顺序存储表示串的顺序存储方式即是在一个字符组中存放各字符,注意此存储方式并不包含空字符,存储字串的组的0号单元用来标识字串长度。其存储如下图: ? 利用malloc()为每个新产生的串分配一块实际串长所需的存储空间,若分配成功,则返回一个指向起始地址的指针,作为串的基址,约定串长也作为存储的一部分。 堆串是个体,char指针指向动态分配的内存来存储字符,length用来存储串的长度。也正是因为需要使用malloc动态分配串的空间,所分配的内存均位于“堆”上,所以这种存储被称为“堆串”。 堆串存储如下图:? 块链串用链表的思维存储字串,但每个点并不是存储一个字符,还是存储多个字符,不用的“块”之间用指针相“链”。块链串存储如下图:?串的模式匹配算法(KMP)首先要搞懂最长前缀和最长后缀的概念。

    26310

    ——二叉查找树(C)

    二叉查找树,也称作二叉搜索树,有序二叉树,排序二叉树,而当一棵空树或者具有下列性质的二叉树,就可以被定义为二叉查找树:若任意节点的左子树不空,则左子树上所有节点的值均于它的根节点的值。 二叉查找树相比于其他的优势在查找、插入的时间复杂度较低,为O(log n)。二叉查找树是基础性,用于建更为抽象的,如集合、multiset、关联组等。 对于大量的输入,链表的线性访问时间太慢,不宜使用。 : %dn, FindMin(T)->Element); return 0;}编译运行这个C文件,控制台打印的信息如下:Hello wsx树的详细信息:21 is root2150 is 21s right left child121 is 127s left child前序遍历二叉树:212150127121中序遍历二叉树:211211272150后序遍历二叉树:121127215021最大值: 2150最

    82241

    实验C实现版

    实验——顺序表的基本操作*-----顺序表的基本操作-----*#include#include#define maxsize 1024typedef char elemtype; typedef 实验——单链表的基本操作*-----单链表的基本操作-----*#include#include typedef int Elemtype;typedef int Status; typedef struct node 定义存储节点{ Elemtype data; 域 struct node *next;体指针} node,*linklist; 体变量,体名称 linklist 实验——赫夫曼树造及赫夫曼编码的实现#include#include#include 动态分配组存储赫夫曼树typedef struct{ int weight; 字符的权值 int parent ,lchild,rchild; 字符的双亲及左右孩子}HTNode,*HuffmanTree; typedef char **HuffmanCode; 动态分配组存储赫夫曼编码,二维组 选择k个点中无双亲且权值最的两个

    13330

    R_

    15540

    9.2 C

    01定义组 1、一个体变量中可以存放一组有关联的(如一个学生的学号、姓名、成绩等)。如果有10个学生的需要参加运算,显然应该用组,这就是组。 2、组与之前介绍的值型组的不同之处在于每个组元素都是一个体类型的,他们都包括各个成员项。 3、定义组一般形式(1)struct 体名{成员表列}组名;(2)先声明一个体类型(如struct Person),然后再用此类型定义组:体类型 组名;4、对组初始化的形式是在定义组的后面加上 :={初值表列};5、在定义组时进行初始化,为清晰起见,将每个学生的信息用一对花括号包起来,这样做,阅读和检查比较方便,尤其当量多时,这样是有好处的。 C | 输出杨辉三角更多案例可以go公众号:C入门到精通

    1282725

    Java等IT开发视频资源分享(不断更新)

    pan.baidu.coms1gf9MUIn 密码:7wsw Springmvc+Mybatis由浅入深全套视频-资料 链接:https:pan.baidu.coms1jIO9X90 密码:h9rz 库 :MySQL库入门教材(配套光盘视频) 链接:http:pan.baidu.coms1kUENzbL 密码:w0d2 oracle库 链接:https:pan.baidu.coms1hrEU1Sw offic教程: 链接:https:pan.baidu.coms1o7OQQzo 密码:n03e swing教程: 链接:https:pan.baidu.coms1jHKVjXc 密码:11sj 八套与算法视频教程 2014年 链接:http:pan.baidu.coms1qY8N1q0 密码:yiw6 RPG游戏制作教程(中文字幕) 链接:http:pan.baidu.coms1hs5abuk 密码:bvgc c视频教程 共65集 链接:http:pan.baidu.coms1jINmPGa 密码:hehc Python:-Python系列教程 链接:http:pan.baidu.coms1mi14ePM

    2.9K81

    cstruct体大计算

    默认4字节对齐,64位默认8字节对齐    2> 体最大成员(基本类型变量)    3> 预编译指令#pragma pack(n)手动设置     n--只能填1 2 4 8 16    上面三者取最的 (取两者中的那个)3.体的整体大必须为实际对齐单位的整倍。 char a放在体的起始地址;short b占2个字节,2于实际对齐字节8,故b的起始地址相对于a的起始地址的偏移量须为2的整倍个字节;int c占4个字节,4于实际对齐字节8,故c 起始地址相对于 :“整个体的大必须是实际对齐单位的整倍”,所以29+5(浪费空间)=32,所以最后nums的空间情况是1(a)+1(浪费空间)+2(b)+4(c)+8(d)+13(arr)+5(浪费空间)=32 字节另外体嵌套体的字节对齐和上面原理一样,唯一要注意的是子体的起始地址与母体的起地址之间的距离必须是子体最大成员或者实际对齐单位(还是取两者的那个)的整倍。

    10641

    Oracle:相信我,Java 仍然是免费的!

    3 月,Facebook 被爆出臭名昭著的“剑桥泄露事件”;同月,Android 系统因侵权使用了 Java 接口,骨文公司获得了 Google 奉送上来的十亿美元罚款;5 月,苹果三星纠缠了近 对此,转转公司架算法部负责人孙玄表示:Java 虽然是老牌,依然非常有生命力。 此次会议上,骨文 Java 平台组的 Georges Saab 再次强调了 Java 在并行性、并发性、性能、类型系统和庞大生态系统方面占的优势,这些特性使其非常适合基础架骨文 Java 平台组的首席架师 Mark Reinhold 即表示:“我们正在以更快的速度发展 Java 平台。我们这样做是为了跟上竞争平台,以使 Java 更适合现代应用。” 目前,Java 团队正在深入研究几个旨在增强的项目,其中包括 Valhalla 项目,旨在提高 JVM 内存使用效率,从而降低成本;Panama 项目,旨在改进用于与 JVM 交互的 C API;Amber

    32520

    学习笔记-Python3学习第三讲

    (A) MM_520 (B) MM520 (C) 520_MM (D) _520_MM C,变量名可以用字母、字、下划线命名,但是不能以字开头在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗? myteacher = yourteacher = myteacheryourteacher = 黑夜print(myteacher) ,myteacher的值是,myteacher赋值给 myteacher = yourteacher = myteachermyteacher = 黑夜print(yourteacher) ,myteacher赋值给yourteacher后,yourteacher string = rlets go在这一讲中,我们说变量的命名需要注意一些地方,但在举例的时候貌似却干了点儿“失误”的事儿,你能看得出例子中哪里有问题吗? string = (我爱C,n正如我爱,n他那呱唧呱唧的声音,n总缠绕于我的脑海,n久久不肯散去……n) 个人觉得还是三重引号方便些

    21710

    相关产品

    • 云服务器

      云服务器

      腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券