From 901da63bee1c30535d7fb5ed40d21b7e262b7b50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Furkan=20T=C3=BCrkal?= Date: Thu, 26 Oct 2017 23:41:50 +0300 Subject: [PATCH] update readme & added image --- .../resources/linked-list.png | Bin 0 -> 6785 bytes linked-list-3-deleting-a-node/README.md | 44 +++++++++++------- 2 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 linked-list-1-introduction/resources/linked-list.png diff --git a/linked-list-1-introduction/resources/linked-list.png b/linked-list-1-introduction/resources/linked-list.png new file mode 100644 index 0000000000000000000000000000000000000000..a666f45503193bfd1502d23f63abad06ab0aba26 GIT binary patch literal 6785 zcmbtZ^;gtiv;`Sp=#+tx7*I+OlF$*7 zZsCpJ_ZPhNe)z;)>-M>4pS|yi(9%#MBL)-W;NXy{D8JCb!NHBi{#yd?Vc!x+bTamX z>!PEifK%SjxQQ(QY~B$O;DsOsDcfUeD8P zH{AnDYj}>?B_kVxFUOy&zj{<#6hS4NL$64b1q8o(@rzn09HPUUJVBkaVISGT{ES$;#Kif$hb>>fuvEFOZJ(FD5Xc&1O4gvn4 z)|_mKPuo#UrLeK#;ijB=VHw0f-O?&|VI$Kp8BY1!D#N05^Vzjfof- zl7J(g!0n3OA!&p}Y3lw0R%aHtK58%lbu{_XKM1>sAX30iaPJY*?bmfa zhqpCaP^a6eTjvaWeV=h#0_Hzsdcw!mF+cY*)*Xc~_Ls;(%b^+tR@oVmS-Yyc)cxGs z(!CrR$t1PN7nH$$u5Z!HceJRRhy5ifvo(+B?F+r0cuhE(E5Gj;Nx;h$Pt$#XpPx9? z2B@f1r6{uF`;$=6R#d@Tq@J;xZGS5DkmI_lYJlUK+RPeXbK)}1NQ&b1BLw7K0S}2m zS$1aYr#2&#w;UBxdof}&aq~@VTWXpFj?9}mxodTA%VW?OinS*iK2Qj)SANFm$zNyk z3D1Pm+wug;rk{T^0gU}{N>fzbYJVEIkCmMb_`|NT3Pv<>#g_r9jGts>FnsxOhuprX zg$jO>QbG0toVFp|5pdI_8a|TN@>(+7G3dKT5)An2Y&IW&hgGrm$;!_uGWzw|EK- zDY~e1HJECuhe`0wr6#`C`Efa}ZjTJb z+Yr9UmhtyKx4eRL?usA6J^8RlO?`qI+1dG0O-)U!l=XS2Nt1ijODcf;PuC~tDijK* z#%n#@V{f5N^EnU!xf=`t*suOh%rf}&=~JDpI$;Pa}VU7

8+-7JH@*XMWJ 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 * Input: Linked List = `[7 -> 1 -> 3 -> 2]` -> * Output: Created Linked List `[2 -> 3 -> 1 -> 7]` -> * Output: Linked List after Deletion of 1: `[2 -> 3 -> 7]` +Arrays can be used to store linear data of similar types, but arrays have following limitations ; -> * Input: Position = 1, Linked List = `[8 -> 2 -> 3 -> 1 -> 7]` -> * Output: Linked List = `[8 -> 3 -> 1 -> 7]` +* 1) The size of the arrays is fixed. So we must know the upper limit on the number of elements in advance. Also, generally, the allocated memory is equal to upper limit irrespective of the usage. -> * Input: Position = 0, Linked List = `[8 -> 2 -> 3 -> 1 -> 7]` -> * Output: Linked List = `[2 -> 3 -> 1 -> 7]` +* 2) Inserting a new element in an array of elements is expensive, because room has to be created for the new elements and to create room existing elements have to shifted. -![Preview Thumbnail](https://raw.githubusercontent.com/Dentrax/Data-Structures-with-Go/master/linked-list-3-deleting-a-node/resources/deleting-a-node.png) +**Example** -**Algorithm Complexity** +> * ID[] = [1000, 1010, 1050, 2000, 2040] -| Complexity | Notation | -| ----------------- |:---------:| -| `Time Complexity` | `O(n)` | +And if we want to insert a new ID 10005, the to maintain the sorted order, we have to move all the elements after 1000 (excluding 1000). + +Deletion is also expensive with arrays until unless some special techniques are used. For example, to delete 1010 in ID[], everythink after 1010 has to moved. + +Advantages Over Arrays +-------------------------- + +* 1) Dynamic size + +* 2) Ease of insertion/deletion + +Drawbacks +-------------------------- + +* 1) Random access is not allowed. We have to access elements sequientally starting from the first node. So we cannot do binary search with LinkedLists. + +* 2) Extra memory space for a pointer is required with each element of the list. \ No newline at end of file