北航数据结构笔记系列二

10.13 BUAA ASE数据结构课程

1.斐波那契数列

  • #字典1.0
    fibdic={'1':1,'2':1}
    sum2=0
    def fun2(n):
    	global sum2
    	global fibdic
    	if fibdic.get(str(n))!=None:
    		sum2+=1
    		return fibdic[str(n)]
    	else:
    		sum2+=1
    		fibdic[str(n)]=fun2(n-1)+fun2(n-2)
    		return fibdic[str(n)]
    print(fun2(25),sum2)
    
    #字典2.0
    sum4=0
    def fun4(n,d):
    	global sum4
    	if n in d:
    		sum4+=1
    		return d[n]
    	else:
    		sum4+=1
    		ans=fun4(n-1,d)+fun4(n-2,d)
    		d[n]=ans
    		return ans
    d={0:1,1:1}
    print(fun4(24,d),sum4)
    
  • #iaPal,回文串
    def isPal(s):
    	if len(s)<=1:
    		return True
    	else:
    		if s[0]==s[-1]:
    			return isPal(s[1:-1])
    		else:
    			return False
    s=input()
    print(isPal(s))
    

2.集合的操作

3.模块

4.文件

  • #读取绝对路径
    f=open('D:/常用文件/学习/编程/pycharm/test.txt','r')
    f=open('D:\\常用文件\\学习\\编程\\pycharm\\test.txt','r')
    f=open(r'D:\常用文件\学习\编程\pycharm\test.txt','r')
    f.close()
    
  • f=open('test.txt','r')
    string1=f.read()
    print('string1:',string1)
    
    f=open('test.txt','r')
    string2=f.readline()
    print('string2:',string2)
    
    f=open('test.txt','r')
    string3=f.readlines()
    print('string3:',string3)
    
    f.close()
    
    f=open('test.txt','a')
    f.write('java or python\n')
    f.close()
    

5.程序的构成&数据结构

1.抽象

2.类

类属性、类方法、类的实现

class:类

object:对象

def:定义方法

#类的创建(分数)
from math import *
class Fraction:   
    def __init__(self,top,bottom):
        self.num = top
        self.den = bottom
    def __str__(self):  #重载方法
        return str(self.num)+'/'+str(self.den)
    def __add__(self, other):
        # return str(self.num*other.den+self.den*other.num)+'/'+str(self.den*other.den)
        newnum=self.num*other.den+self.den*other.num
        newden=self.den*other.den
        g=gcd(newnum,newden)
        newden//=g
        newnum//=g
        return Fraction(newnum,newden)
    def show(self): #定义方法
        print(str(self.num)+'/'+str(self.den))


myfraction = Fraction(4,5)
f1=Fraction(1,3)
f2=Fraction(1,3)
print('-----------------1.打印输出-----------------------------------')
print(myfraction)
myfraction.show()
print()
print('1--', myfraction)
print('------------------2.分数加----------------------------------------------')
print(f1+f2)

3.栈

  • Stack(),栈的实例化

  • push(item),压栈(元素入栈)

  • s
    

4.栈的实例----十进制转二进制(任意进制)

5.队列

  • 作业:队列模拟循环链表
第一课:数据结构的基本概念和术语 第课:抽象数据类型的表示与实现 第三课:算法及算法设计要求 第四课:算法效率的度量和存储空间需求 第五课:线性表的类型定义 第六课:线性表的顺序表示和实现 第七课:实验一 线性表的顺序存储实验 第八课:线性表的链式表示与实现 第九课:循环链表与双向链表 第十课:栈的表示与实现 第十一课:栈的应用 第十课:实验 循环链表实验 第十三课:队列 第十四课:串的定义 第十五课:串的表示和实现 第十六课:串操作应用举例 第十七课:实验三:栈的表示与实现及栈的应用 第十八课:数组的顺序表示与实现 第十九课:实验四 串的实现实验 第十课:广义表 第十一课:树、叉树定义及术语 第课:实验五 数组实验 第十三课:叉树的存储结构 第十四课:遍历叉树 第十五课:单元测验 第十六课:图的定义与术语 第十七课:实验六 叉树实验 第十八课:图的存储结构 第十九课:静态查找表(一)顺序表的查找 第三十课:静态查找表()有序表的查找 第三十一课:动态查找表 第三十课:哈希表(一) 第三十三课:哈希表() 第三十四课:插入排序,快速排序 第三十五课:实验七 查找 第三十六课:选择排序,归并排序 第三十七课:实验八 排序实验 第三十八课:文件概念,顺序文件 第三十九课:索引文件 第四十课:总复习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值