О преподавателе
Определение
Структура данных — программная единица, позволяющая хранить и обрабатывать множество однотипных или логически связанных данных, предоставляющая набор функций для манипуляции данными (интерфейс структуры данных).
Выбор структуры
Порядки роста O(f)
Проблема 2038 года
Python time!
Перемещаемся в Jupyter notebook
Integer
typedef struct {
PyObject_HEAD
long ob_ival;
} PyIntObject;
String
typedef struct {
PyObject_VAR_HEAD
long ob_shash;
int ob_sstate;
char ob_sval[1];
} PyStringObject;
List
typedef struct {
PyObject_VAR_HEAD
PyObject **ob_item;
Py_ssize_t allocated;
} PyListObject;
Tuple
typedef struct {
PyObject_VAR_HEAD
PyObject *ob_item[1];
} PyTupleObject;
Dict
typedef struct {
Py_ssize_t me_hash;
PyObject *me_key;
PyObject *me_value;
} PyDictEntry;
typedef struct _dictobject PyDictObject;
struct _dictobject {
PyObject_HEAD
Py_ssize_t ma_fill; /* # Active + # Dummy */
Py_ssize_t ma_used; /* # Active */
Py_ssize_t ma_mask; /* equal to size of ma_table - 1; calc index*/
PyDictEntry *ma_table;
PyDictEntry *(*ma_lookup)(PyDictObject *mp, PyObject *key, long hash);
PyDictEntry ma_smalltable[PyDict_MINSIZE];
};