Skip to content
This repository has been archived by the owner on Apr 1, 2021. It is now read-only.

Update : Data Structures : Arrays #1074

Merged
3 commits merged into from
Jun 2, 2016
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 71 additions & 11 deletions Data-Structure-Arrays.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,58 @@ Internally, `array` is a kind of data structure that can store a fixed-size sequ

`array` consists of contiguous memory locations. The lowest address corresponds to the first element and the highest address to the last element.


## Arrays in C++

C++ provides a data structure, `array`, which stores a fixed-size sequential collection of elements of the same data-type. An `array` is used to store a collection of data, but it is better to think of an `array` as a collection of variables of the same type.

#### Declaration of `array`

```cpp

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this line

int intarray[10]; // Declares an array of integer type of size 10 with elements having random values. Index ranges from 0 to 9(i.e. size-1).
int intarray[10] = { 0 }; // Declares an array of integer of size 10 with all elements having value 0

// Choose one the two declarations and then move ahead.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this line

```

#### Inserting elements to `array`:

```cpp

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this line

intarray[0] = 1; // Inserts an integer value of 1 at index 0
intarray[1] = 0; // Inserts an integer value of 0 at index 1
intarray[2] = -1; // Inserts an integer value of -1 at index 2
intarray[3] = 1; // Inserts an integer value of 1 at index 3

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this line

```

#### Printing an `array`:

```cpp

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this line

std::cout << intarray[0] << std::endl; // Returns 1 which is element at index of the array
std::cout << intarray[11] << std::endl; // A random number is expected, while in reality this is `dangerous`, and is primary cause of crashes as it's accessing a memory location which does not exist.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you mis-interpreted this comment.

This should be:

-std::cout << intarray[11] << std::endl; // A random number is expected, while in reality this is `dangerous`, and is primary cause of crashes as it's accessing a memory location which does not exist.
+std::cout << intarray[11] << std::endl; // Would give a a "Garbage" value as there is no element at index 11 of array. That memory location is beyond the range of the array.


// To print all the elements of the array
for(int i = 0; i < n; i++)
std::cout << intarray[i] << std::endl;

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this line

```

#### Basic operations on `array`:

```cpp

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this line

std::cout << sizeof(intarray)/sizeof(intarray[0]) << std::endl; // Returns the length of the array i.e. 10.
std::cout << sizeof(intarray[0]) << std::endl; // Returns length in bytes of one array item i.e. 4 as it is an integer

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this line

```

:rocket: [Run Code](https://repl.it/CWZE/3)


Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this line

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which line...? Inside block that is ``` or after that...?

## Arrays in Python

Python doesn't have a native `array` data structure. An `array` in Python should not be confused with `list`. The major difference between a `list`
Expand All @@ -12,47 +64,55 @@ and an `array` in Python is that a `list` can have different types of values whe
#### Declaration of `array`

```python

from array import array
intarray = array('i') # Declares an array of integer type

```

#### Adding elements to `array`:
#### Inserting elements to `array`:

```python
intarray.append(1) # Adds an integer value of 1 to the array
intarray.append(0) # Adds an integer value of 0 to the array
intarray.append(-1) # Adds an integer value of -1 to the array
intarray.append(1) # Again adds an integer value of 1 to the array

intarray.append('d') # Would give a TypeError as the array is of integer type.
intarray.append(1) # Inserts an integer value of 1 to the array
intarray.append(0) # Inserts an integer value of 0 to the array
intarray.append(-1) # Inserts an integer value of -1 to the array
intarray.append(1) # Inserts an integer value of 1 to the array

intarray.append('d') # Would give a TypeError as the array is of integer type.

#Resolve the above error and then move ahead.

```

#### Printing an `array`:
#### Printing an `array`:

```python

print(intarray) # Returns array('i', [1, 4, -1])
print(intarray[0]) # Returns 1 which is the element at index 0 of the array
print(intarray[3]) # Would give IndexError as there is no element at index 3 of array.
print(intarray[3]) # Would give IndexError as there is no element at index 3 of array.

#Resolve the above error and then move ahead.

# To print all the elements of the array
for i in intarray:
print(i)

```

#### Basic operations on `array`:
#### Basic operations on `array`:

```python

len(intarray) # Returns the length of the array i.e. 3
intarray.itemsize # Returns length in bytes of one array item i.e. 4 as it is an integer
intarray.count(1) # Returns the number of occurrences of 1 in the array i.e. 2
intarray.insert(1, 3) # Insert a new item with value x in the array before position i
intarray.remove(1) # Remove the first occurrence of 1 from the array
intarray.reverse() # Reverse the order of the items in the array
intarray.pop(1) # Removes the item with the index 1 from the array and returns it
intarray.pop(1) # Removes the item with the index 1 from the array and returns it

```

:rocket: [Run Code](https://repl.it/CWJB)
Expand Down