Skip to content

Commit 1954374

Browse files
changes as per request
1 parent 91318d8 commit 1954374

File tree

1 file changed

+102
-54
lines changed

1 file changed

+102
-54
lines changed

contrib/ds-algorithms/deque.md

Lines changed: 102 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -19,86 +19,134 @@ d = deque(iterable) # Create deque from iterable (optional)
1919
- append(x): Adds element x to the right end of the deque.
2020
- appendleft(x): Adds element x to the left end of the deque.
2121

22+
### Program
23+
```py
24+
from collections import deque
25+
26+
# Initialize a deque
27+
d = deque([1, 2, 3, 4, 5])
28+
print("Initial deque:", d)
29+
30+
# Append elements
31+
d.append(6)
32+
print("After append(6):", d)
33+
34+
# Append left
35+
d.appendleft(0)
36+
print("After appendleft(0):", d)
37+
38+
```
39+
### Output
40+
```py
41+
Initial deque: deque([1, 2, 3, 4, 5])
42+
After append(6): deque([1, 2, 3, 4, 5, 6])
43+
After appendleft(0): deque([0, 1, 2, 3, 4, 5, 6])
44+
```
45+
2246
2. **Removing Elements**:
2347

2448
- pop(): Removes and returns the rightmost element.
2549
- popleft(): Removes and returns the leftmost element.
2650

51+
### Program
52+
```py
53+
from collections import deque
54+
55+
# Initialize a deque
56+
d = deque([1, 2, 3, 4, 5])
57+
print("Initial deque:", d)
58+
59+
# Pop from the right end
60+
rightmost = d.pop()
61+
print("Popped from right end:", rightmost)
62+
print("Deque after pop():", d)
63+
64+
# Pop from the left end
65+
leftmost = d.popleft()
66+
print("Popped from left end:", leftmost)
67+
print("Deque after popleft():", d)
68+
69+
```
70+
71+
### Output
72+
```py
73+
Initial deque: deque([1, 2, 3, 4, 5])
74+
Popped from right end: 5
75+
Deque after pop(): deque([1, 2, 3, 4])
76+
Popped from left end: 1
77+
Deque after popleft(): deque([2, 3, 4])
78+
```
79+
2780
3. **Accessing Elements**:
2881

2982
- deque[index]: Accesses element at index.
3083

84+
### Program
85+
```py
86+
from collections import deque
87+
88+
# Initialize a deque
89+
d = deque([1, 2, 3, 4, 5])
90+
print("Initial deque:", d)
91+
92+
# Accessing elements
93+
print("Element at index 2:", d[2])
94+
95+
```
96+
97+
### Output
98+
```py
99+
Initial deque: deque([1, 2, 3, 4, 5])
100+
Element at index 2: 3
101+
102+
```
103+
31104
4. **Other Operations**:
32105

33106
- extend(iterable): Extends deque by appending elements from iterable.
34107
- extendleft(iterable): Extends deque by appending elements from iterable to the left.
35108
- rotate(n): Rotates deque n steps to the right (negative n rotates left).
36109

37-
## Example
38-
39-
### 1. showing all the operations
40-
```py
41-
from collections import deque
110+
### Program
111+
```py
112+
from collections import deque
42113

43-
# Initialize a deque
44-
d = deque([1, 2, 3, 4, 5])
45-
print("Initial deque:", d)
114+
# Initialize a deque
115+
d = deque([1, 2, 3, 4, 5])
116+
print("Initial deque:", d)
46117

47-
# Append elements
48-
d.append(6)
49-
print("After append(6):", d)
118+
# Extend deque
119+
d.extend([6, 7, 8])
120+
print("After extend([6, 7, 8]):", d)
50121

51-
# Append left
52-
d.appendleft(0)
53-
print("After appendleft(0):", d)
122+
# Extend left
123+
d.extendleft([-1, 0])
124+
print("After extendleft([-1, 0]):", d)
54125

55-
# Pop from the right end
56-
rightmost = d.pop()
57-
print("Popped from right end:", rightmost)
58-
print("Deque after pop():", d)
126+
# Rotate deque
127+
d.rotate(2)
128+
print("After rotate(2):", d)
59129

60-
# Pop from the left end
61-
leftmost = d.popleft()
62-
print("Popped from left end:", leftmost)
63-
print("Deque after popleft():", d)
130+
# Rotate left
131+
d.rotate(-3)
132+
print("After rotate(-3):", d)
64133

65-
# Accessing elements
66-
print("Element at index 2:", d[2])
134+
```
67135

68-
# Extend deque
69-
d.extend([6, 7, 8])
70-
print("After extend([6, 7, 8]):", d)
136+
### Output
137+
```py
138+
Initial deque: deque([1, 2, 3, 4, 5])
139+
After extend([6, 7, 8]): deque([1, 2, 3, 4, 5, 6, 7, 8])
140+
After extendleft([-1, 0]): deque([0, -1, 1, 2, 3, 4, 5, 6, 7, 8])
141+
After rotate(2): deque([7, 8, 0, -1, 1, 2, 3, 4, 5, 6])
142+
After rotate(-3): deque([1, 2, 3, 4, 5, 6, 7, 8, 0, -1])
71143

72-
# Extend left
73-
d.extendleft([-1, 0])
74-
print("After extendleft([-1, 0]):", d)
144+
```
75145

76-
# Rotate deque
77-
d.rotate(2)
78-
print("After rotate(2):", d)
79146

80-
# Rotate left
81-
d.rotate(-3)
82-
print("After rotate(-3):", d)
83-
```
84-
Output
85-
```py
86-
Initial deque: deque([1, 2, 3, 4, 5])
87-
After append(6): deque([1, 2, 3, 4, 5, 6])
88-
After appendleft(0): deque([0, 1, 2, 3, 4, 5, 6])
89-
Popped from right end: 6
90-
Deque after pop(): deque([0, 1, 2, 3, 4, 5])
91-
Popped from left end: 0
92-
Deque after popleft(): deque([1, 2, 3, 4, 5])
93-
Element at index 2: 3
94-
After extend([6, 7, 8]): deque([1, 2, 3, 4, 5, 6, 7, 8])
95-
After extendleft([-1, 0]): deque([0, -1, 1, 2, 3, 4, 5, 6, 7, 8])
96-
After rotate(2): deque([7, 8, 0, -1, 1, 2, 3, 4, 5, 6])
97-
After rotate(-3): deque([1, 2, 3, 4, 5, 6, 7, 8, 0, -1])
98-
99-
```
147+
## Example
100148

101-
### 2. Finding Maximum in Sliding Window
149+
### 1. Finding Maximum in Sliding Window
102150
```py
103151
from collections import deque
104152

0 commit comments

Comments
 (0)