2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Sicut scribens aliquas functiones interfaces ad singulas tabulas connexiones, primum scribemus aliquas interfaces pro duplicate iunctarum tabularum ut familiares cum suo principali compage:
#includere<stdio.h>
#includere<stdlib.h>
typedef int LDataType;
// Nodus duorum modorum circularis nexus album
typedef instruere {ListNode
LDataType _data;
// Point ad incipiens positio altera nodi
struct ListNode* _next;
// Point ad initium positio prioris nodi
struct LIst* _prev;
}ListNode;
// Duo-modo virens album circularis coniunctum
typedef instruere List {
strue ListNode* _head;
} List;
instruere ListNode * createListNode (LDataType val){
struct ListNode* node = (struct ListNode*) malloc(sizeof(struct ListNode));
node->_data = val;
node->_next = NULL;
node->_prev = NULL;
}
inanis ListInit(Lst* lst){
// vacua coniunctum album
lst->_head = createListNode(0);
lst->_head->_next = lst->_head->_prev = lst->_head;
}
// Caudam insertio O(1) // Insert a data in fronte capitis ListInsert(lst, lst->_head, val);
inanis ListpushBack(Lst* lst, LDataType val){
sin (lst == NULL){
remittere;
struct ListNode* last = lst->_head->_prev;
struct ListNode* newNode = createListNode(val);
//_head ... last newNode
last->_next = newNode;
newNode->_prev = last;
newNode->_next = lst->_head;
lst->_head->_prev = newNode;
}
}
// Tail delere: // Delere nodi priorem capitis ListErase(lst, lst->_head->_prev);
inanis ListPopBack(Lst* lst){
sin (== lst NULL)
remittere;
// Utrum inanis est coniunctus index
si (lst->_head->_next == lst->_head)
remittere;
struct ListNode* last = lst->_head->_prev;
struct ListNode* prev = last->_prev;
gratis (ultimum);
lst->_head->_prev = prev;
prev->_next = lst->_head;
}
void printList(List* lst){
struct ListNode* cur = lst->_head->_next;
dum (cur != lst->_head){
printf("%d", cur->_data);
cur = cur->_next;
}
printf("n");
}
//Head insert//ListInsert(lst,lst->_head->_next, val);
void ListPushFront(Lst* lst, LDataType val){
sin (== lst NULL)
remittere;
struct ListNode* next = lst->_head->_next;
struct ListNode* newNode = createListNode(val);
//_head, newNode, next
lst->_head->_next = newNode;
newNode->_prev = lst->_head;
newNode->_next = next;
next->_prev = newNode;
}
//Header delete//ListErase(lst,lst->_head->_next);
inanis ListPopFront(Lst* lst){
sin (lst == NULL || lst->_head == lst->_head)
remittere;
struct ListNode* next = lst->_head->_next;
struct ListNode* nextnext = next->_next;
nextnext->_prev = next->_next;
lst->_head->_next = nextnext;
gratis (deinde);
}
inanis ListErase (List* lst, instrue ListNode* node){
// non potest delere caput nodi
sin (lst == NULL || lst-> _head == nodi)
remittere;
//prev, node, next
struct ListNode* prev = node->_prev;
struct ListNode* next = node->_next;
prev->_next = next;
next->_prev = prev;
gratis (nodi);
}
inanis ListInsert(Lst* lst, strue ListNode* node, LDataType val){
sin (== lst NULL)
remittere;
struct ListNode* prev = node->_prev;
struct ListNode* newNode = createListNode(val);
//prev newNode node
prev->_next = newNode;
newNode->_prev = prev;
newNode->_next = node;
node->_prev = newNode;
}
// destroy
ListDestoty(Lst* lst){
si (lst){
si (lst-> _head) {
struct ListNode* cur = lst->_head->_next;
dum (cur != lst->_head){
struct ListNode* next = cut->_next;
gratis (cur);
cur = deinde;
}
free(lst->_head);
}
}
}
inanis test(){
List lst;
ListInit(&lst);
ListPushFront(&lst, 5);
printList(&lst);
ListPushFront(&lst, 1);
printList(&lst);
ListPushFront(&lst, 2);
printList(&lst);
ListPushFront(&lst, 3);
printList(&lst);
ListPushFront(&lst, 4);
printList(&lst);
ListPopFront(&lst);
printList(&lst);
ListPopFront(&lst);
printList(&lst);
ListPopFront(&lst);
printList(&lst);
/*ListPopBack(&lst);
printList(&lst);
ListPopBack(&lst);
printList(&lst);
ListPopBack(&lst);
printList(&lst);
ListPopBack(&lst);
printList(&lst);*/
}
int principalis (){
test();
ratio ("pausae");
remittere 0;
}
Discrimen et connexionem inter album seriei et indicem coniunctum;
Commoda et Incommoda Sequentiae Tabula: Praeclara: Spatium continuum est, accessum temere sustinet, altum spatium utendo est, nec verisimile est memoriam ruptionis causa facere, et caudam insertam et caudam deletionis efficientiam altam habet.
Incommoda: 1. Tempus multiplicitatem inserendi ac delendi medium vel anteriorem partem est O (N) 2. Sumptus capacitatis expansionis relative altum est: applicare pro rescriptum emissio
Commoda et incommoda limites coniunctorum (per ambages ductus temere in tabulas coniunctorum)
Commoda: 1. Tempus multiplicitatem inserendi et delendi in quavis positione est O (1) 2. Nulla quaestio est capacitatis expansionis, inserendi spatium aperit, et efficientia inserendi ac delendi in quavis positione alta est.
Incommoda: Conditum est in unitatibus nodi, aditum temere non sustinet, et humile spatium utendo memoriam ruptionis facile causare potest.
acervos et queues
BIBLIOTHECA: Peculiaris index linearis qui in uno fine tantum elementorum insertionem et deletionem permittit. Finis, ubi insertio ac deletio operationum datae fiunt, summus acervus appellatur, et alter finis ACERVUS appellatur in ACERVUS sequitur LIFO (last in first out) principle
Propellentibus ACERVUS: Insertio operatio ACERVUS dicitur dis/dis/dis, et inserta notitia super verticem ACERVUS
Pop: Operatio ACERVUS deletio papaver vocatur, et papaver etiam in summo ACERVUS data est.
Exsequendam dis operatio dis ---> copia elementis a summo in ACERVUS
Sequentia in mensa: Potest videri cauda inserta operandi
Elenchus coniunctus: (album rotundum biceps capitum) caput elenchus pro cacumine ACERVi, qui est caput immissum, et cauda calculi pro summo ACERVo, qui est. cauda insertio
Pop operatio pop ---> remove elementa a summo in ACERVUS
Sequentia tabulae: Finis mensae pro culmine acervi spectatur, et operatio caudae delete habetur.
Elenchus coniunctus: (anceps rotundus biceps electronicus coniunctus) caput elenchus pro summo ACERVi, qui est caput deletionis, et cauda electronici habetur pro cacumine acervi, qui est. cauda deletio.
#includere<stdio.h>
#includere<stdlib.h>
typedef int STDataType;
// Sequentia mensam instrumentorum acervus
typedef instruere BIBLIOTHECA {
STDataType* _data;
int _size;
int _capacity;
}stack;
inanis StackInit (BIBLIOTHECA * st){
sin (st == NULL)
remittere;
st->_data = NULL;
st->_size = st->_capacity = 0;
}
inanis checkCapcacity (Stack * st) {
si (st->_size == st->_capacitas){
int newCapcacity = st->_capacity == 0 ? 1 : 2 * st->_capacity;
st->_data = (STDataType*)realloc(st->_data, sizeof(STDataType)* newCapcacity);
st->_capacity = newCapcacity;
}
}
// ventilabis ad Stack
inanis acervus (stack* st, STDataType val){
sin (st == NULL)
remittere;
checkCapacity(st);
// Caudium insertio
st->_data[st->_size++] = val;
}
//pop
vacui StackPop (stack* st){
sin (st == NULL)
remittere;
si (st->_size> 0)
st->_size--;
}
STDataType StackTop (stack* st){
return st->_data[st->_size - 1];
}
int StackSize (BIBLIOTHECA * st) {
sin (st == NULL)
remittere 0;
reditus st->_size;
}
inanis test(){
acervus, st;
StackInit(&st);
StackPush(&st, 1);
StackPush(&st, 2);
StackPush(&st, 3);
StackPush(&st, 4);
nam (int i = 0; i < 4; ++i){
printg("%d", StackTop(&st));
StackPop(&st);
}
printf("n");
}
int principalis (){
test();
ratio ("pausae");
remittere 0;
}