1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/valkmjolnir-Nasal-Interpreter

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
list.nas 1.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
ValKmjolnir Отправлено год назад 28a4234
# list.nas
# valkmjolnir 2021/3/31
var new = func() {
var (begin, end, len) = (nil, nil, 0);
return {
push_back: func(elem) {
var tmp = {
elem: elem,
prev: nil,
next: nil
};
if (end!=nil) {
end.next = tmp;
tmp.prev = end;
end = tmp;
} else {
begin = end = tmp;
}
len += 1;
},
push_front: func(elem) {
var tmp = {
elem: elem,
prev: nil,
next: nil
};
if (begin!=nil) {
begin.prev = tmp;
tmp.next = begin;
begin = tmp;
} else {
begin = end = tmp;
}
len += 1;
},
pop_back: func() {
if (end!=nil) {
end = end.prev;
}
if (end==nil) {
begin = nil;
} else {
end.next = nil;
}
if (len) {
len -= 1;
}
},
pop_front: func() {
if (begin!=nil) {
begin = begin.next;
}
if (begin==nil) {
end = nil;
} else {
begin.prev = nil;
}
if (len) {
len -= 1;
}
},
front: func() {
if (begin!=nil) {
return begin.elem;
}
},
back: func() {
if (end!=nil) {
return end.elem;
}
},
length: func() {
return len;
}
};
}

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/valkmjolnir-Nasal-Interpreter.git
git@gitlife.ru:oschina-mirror/valkmjolnir-Nasal-Interpreter.git
oschina-mirror
valkmjolnir-Nasal-Interpreter
valkmjolnir-Nasal-Interpreter
master