data structure
ROOOOOOM
room
展开
-
python O(m+n) 时间复杂度
def algorithm_m_add_n(m,n): sum1=0 for i in xrange(1,m): sum1 +=i sum2=0 for j in xrange(1,n): sum1 +=j return sum1+sum2我们无法评估 m和 n 谁的量级大,所以在表示复杂度的时候,就不能简单地利用加法法则,省略掉其中一个。所以,上面代码的时间复杂度是 O(m...原创 2020-04-02 23:20:13 · 1295 阅读 · 0 评论 -
python timeit测试程序执行时间
def test1(): l = [] for i in range(1000): l = l + [i]t1 = Timer("test1()", "from __main__ import test1")print("concat ", t1.timeit(number=1000), "seconds")原创 2019-06-24 18:17:23 · 798 阅读 · 0 评论 -
python 顺序表
在Python的官方实现中,list就是一种采用分离式技术实现的动态顺序表。这就是为什么用list.append(x) (或 list.insert(len(list), x),即尾部插入)比在指定位置插入元素效率高的原因。在Python的官方实现中,list实现采用了如下的策略:在建立空表(或者很小的表)时,系统分配一块能容纳8个元素的存储区;在执行插入操作(insert或append)时,如...原创 2019-06-24 18:37:44 · 496 阅读 · 0 评论 -
python 单向循环链表
# -*- coding: utf-8 -*-# @Author: WangZeling# @Date: 2019-06-24 18:40:06# @Last Modified by: WangZeling# @Last Modified time: 2019-06-24 18:40:34class Node(object): """节点""" def __ini...原创 2019-06-24 18:42:03 · 100 阅读 · 0 评论 -
python 双向链表
class Node(object): """双向链表节点""" def __init__(self, item): self.item = item self.next = None self.prev = Noneclass DLinkList(object): """双向链表""" def __init__...原创 2019-06-24 18:53:09 · 93 阅读 · 0 评论 -
python 栈
class Stack(object): """栈""" def __init__(self): self.items = [] def is_empty(self): """判断是否为空""" return self.items == [] def push(self, item): """加入...原创 2019-06-24 18:54:21 · 85 阅读 · 0 评论 -
python 队列
class Queue(object): """队列""" def __init__(self): self.items = [] def is_empty(self): return self.items == [] def enqueue(self, item): """进队列""" self....原创 2019-06-24 18:55:32 · 136 阅读 · 0 评论 -
python 双端队列
class Deque(object): """双端队列""" def __init__(self): self.items = [] def is_empty(self): """判断队列是否为空""" return self.items == [] def add_front(self, item): ...原创 2019-06-24 18:56:29 · 153 阅读 · 0 评论 -
python IDLE 自带sorting demo
原创 2019-08-10 10:22:59 · 218 阅读 · 0 评论 -
python 单向链表
class LinkList (object): """docstring for linked list """ def __init__(self): self.first = None self.rest=Nonel=LinkList()l.first=1l.rest=LinkList()l.rest.fist=2l.rest.res...原创 2019-06-24 13:00:17 · 149 阅读 · 0 评论 -
python 二叉树
class Node(object): """节点类""" def __init__(self, elem=-1, lchild=None, rchild=None): self.elem = elem self.lchild = lchild self.rchild = rchildclass Tree(object): ...原创 2019-06-25 08:07:39 · 198 阅读 · 0 评论 -
链队列简单操作(c语言)
#include <stdio.h> #include <stdlib.h>#define ERROR 0 struct Node{ int Data; struct Node *Next; }; struct QNode{ struct Node *rear; ...原创 2019-02-15 18:29:53 · 273 阅读 · 0 评论 -
链栈简单操作(c语言)
/* 功能:栈的链表实现 Author:lxm Date: 20160511*/#include <stdio.h>#include <stdlib.h>#define ELEMTYPE int#define STACK_EMPTY -9999#define N 10typedef struct Node{ EL...原创 2019-02-15 18:31:02 · 171 阅读 · 0 评论 -
顺序表简单操作(c语言)
#include<stdio.h>#include<ctype.h>#include<stdlib.h>#define MAX 100struct seList{ int data[MAX]; int n;};typedef struct seList * list;list makelist(void);void print(void...原创 2019-02-15 18:31:45 · 252 阅读 · 0 评论 -
顺序栈简单操作(c语言)
#include<stdio.h>#include<stdlib.h>#define MaxSize 10typedef struct node* SeqStack;typedef char ElementType;struct node { ElementType data[MaxSize]; int top; //标记栈顶数据};//初始...原创 2019-02-15 18:32:53 · 348 阅读 · 0 评论 -
循环队列简单操作(c语言)
#include<stdio.h>#include<stdlib.h>#define MaxSize 5typedef struct node* SeQuence;struct node { char data[MaxSize]; int Front, Rear; //Front队头,出队用,Rear队尾,入队用};//初始化void Init...原创 2019-02-15 18:33:34 · 368 阅读 · 0 评论 -
python 二分法查找搜索
循环def binary_search(alist, item): first = 0 last = len(alist)-1 while first<=last: midpoint = (first + last)/2 if alist[midpoint] == item: retur...原创 2019-06-25 08:06:11 · 421 阅读 · 0 评论 -
单链表简单操作(二级指针)(c语言)
#include &lt;stdio.h&gt;#include &lt;malloc.h&gt;#define null 0typedef int ElemType; /* 字符型数据*/struct LNode{ ElemType data; struct LNode *next;}; void setnull(struct LNode **p);...原创 2019-02-15 18:28:41 · 447 阅读 · 0 评论