summaryrefslogtreecommitdiff
path: root/Data_Structures_and_Algorithms_in_Java/ch2.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Data_Structures_and_Algorithms_in_Java/ch2.ipynb')
-rw-r--r--Data_Structures_and_Algorithms_in_Java/ch2.ipynb374
1 files changed, 356 insertions, 18 deletions
diff --git a/Data_Structures_and_Algorithms_in_Java/ch2.ipynb b/Data_Structures_and_Algorithms_in_Java/ch2.ipynb
index 545d8433..ffbe7f1a 100644
--- a/Data_Structures_and_Algorithms_in_Java/ch2.ipynb
+++ b/Data_Structures_and_Algorithms_in_Java/ch2.ipynb
@@ -1,6 +1,7 @@
{
"metadata": {
- "name": "ch2"
+ "name": "",
+ "signature": "sha256:aab97f08438f435b57ec8f21a4d063e7bb3805bfb2401a475b716ab779bcb766"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -11,25 +12,64 @@
"cell_type": "heading",
"level": 1,
"metadata": {},
- "source": "Chapter 2 : Arrays"
+ "source": [
+ "Chapter 2 : Arrays"
+ ]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
- "source": "Example 2.1 Page no :41"
+ "source": [
+ "Example 2.1 Page no :41"
+ ]
},
{
"cell_type": "code",
"collapsed": false,
- "input": "'''\nexample 2.1\ndemonstrates arrays/lists\n'''\n\nnElems = 0\narr = [77,99,44,55,22,88,11,00,66,33]\n\nfor j in range(len(arr)):\n # display items\n print arr[j] ,\nprint ''\n\nsearchKey = 66\n# find item with key 66\nfor j in range(len(arr)):\n if(arr[j] == searchKey):\n break\nif(j == len(arr)):\n print 'Cant find ', searchKey\nelse:\n print 'Found ' ,searchKey\n\nsearchKey = 55\nfor j in arr:\n if(j == searchKey):\n arr.remove(searchKey)\n\n\nfor j in range(len(arr)):\n # display items\n print arr[j] ,\nprint ''\n",
+ "input": [
+ " \n",
+ "\n",
+ "nElems = 0\n",
+ "arr = [77,99,44,55,22,88,11,00,66,33]\n",
+ "\n",
+ "for j in range(len(arr)):\n",
+ " # display items\n",
+ " print arr[j] ,\n",
+ "print ''\n",
+ "\n",
+ "searchKey = 66\n",
+ "# find item with key 66\n",
+ "for j in range(len(arr)):\n",
+ " if(arr[j] == searchKey):\n",
+ " break\n",
+ "if(j == len(arr)):\n",
+ " print 'Cant find ', searchKey\n",
+ "else:\n",
+ " print 'Found ' ,searchKey\n",
+ "\n",
+ "searchKey = 55\n",
+ "for j in arr:\n",
+ " if(j == searchKey):\n",
+ " arr.remove(searchKey)\n",
+ "\n",
+ "\n",
+ "for j in range(len(arr)):\n",
+ " # display items\n",
+ " print arr[j] ,\n",
+ "print ''\n"
+ ],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
- "text": "77 99 44 55 22 88 11 0 66 33 \nFound 66\n77 99 44 22 88 11 0 66 33 \n"
+ "text": [
+ "77 99 44 55 22 88 11 0 66 33 \n",
+ "Found 66\n",
+ "77 99 44 22 88 11 0 66 33 \n"
+ ]
}
],
"prompt_number": 1
@@ -38,19 +78,83 @@
"cell_type": "heading",
"level": 3,
"metadata": {},
- "source": "Example 2.2 Page No : 44"
+ "source": [
+ "Example 2.2 Page No : 44"
+ ]
},
{
"cell_type": "code",
"collapsed": false,
- "input": "'''\nexample 2.2\n'''\n\nclass LowArray:\n def __init__(self,size):\n self.a = []\n for i in range(size):\n self.a.append(0.0)\n \n def setElem(self,index,value):\n # set value\n self.a[index] = value\n\n def getElem(self,index):\n return self.a[index]\n\narr = LowArray(100)\narr.setElem(0,77)\narr.setElem(1,99)\narr.setElem(2,44)\narr.setElem(3,55)\narr.setElem(4,22)\narr.setElem(5,88)\narr.setElem(6,11)\narr.setElem(7,00)\narr.setElem(8,66)\narr.setElem(9,33)\nnElems = 10\n\n# now 10 items in array\nfor j in range(nElems):\n # display items\n print arr.getElem(j) ,\n\nprint ''\n\nsearchKey = 26\nfind = False\n# search for data item\nfor j in range(nElems):\n # for each element,\n if(arr.getElem(j) == searchKey): # found item?\n find = True\n break\nif(not find):\n print \"Can't find \" , searchKey\nelse:\n print \"Found \" , searchKey\n\nfor j in range(nElems):\n if(arr.getElem(j) == 55):\n arr.a.remove(55)\n nElems -= 1\n\nfor j in range(nElems):\n # display items\n print arr.getElem(j) ,\n ",
+ "input": [
+ " \n",
+ "\n",
+ "class LowArray:\n",
+ " def __init__(self,size):\n",
+ " self.a = []\n",
+ " for i in range(size):\n",
+ " self.a.append(0.0)\n",
+ " \n",
+ " def setElem(self,index,value):\n",
+ " # set value\n",
+ " self.a[index] = value\n",
+ "\n",
+ " def getElem(self,index):\n",
+ " return self.a[index]\n",
+ "\n",
+ "arr = LowArray(100)\n",
+ "arr.setElem(0,77)\n",
+ "arr.setElem(1,99)\n",
+ "arr.setElem(2,44)\n",
+ "arr.setElem(3,55)\n",
+ "arr.setElem(4,22)\n",
+ "arr.setElem(5,88)\n",
+ "arr.setElem(6,11)\n",
+ "arr.setElem(7,00)\n",
+ "arr.setElem(8,66)\n",
+ "arr.setElem(9,33)\n",
+ "nElems = 10\n",
+ "\n",
+ "# now 10 items in array\n",
+ "for j in range(nElems):\n",
+ " # display items\n",
+ " print arr.getElem(j) ,\n",
+ "\n",
+ "print ''\n",
+ "\n",
+ "searchKey = 26\n",
+ "find = False\n",
+ "# search for data item\n",
+ "for j in range(nElems):\n",
+ " # for each element,\n",
+ " if(arr.getElem(j) == searchKey): # found item?\n",
+ " find = True\n",
+ " break\n",
+ "if(not find):\n",
+ " print \"Can't find \" , searchKey\n",
+ "else:\n",
+ " print \"Found \" , searchKey\n",
+ "\n",
+ "for j in range(nElems):\n",
+ " if(arr.getElem(j) == 55):\n",
+ " arr.a.remove(55)\n",
+ " nElems -= 1\n",
+ "\n",
+ "for j in range(nElems):\n",
+ " # display items\n",
+ " print arr.getElem(j) ,\n",
+ " "
+ ],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
- "text": "77 99 44 55 22 88 11 0 66 33 \nCan't find 26\n77 99 44 22 88 11 0 66 33\n"
+ "text": [
+ "77 99 44 55 22 88 11 0 66 33 \n",
+ "Can't find 26\n",
+ "77 99 44 22 88 11 0 66 33\n"
+ ]
}
],
"prompt_number": 2
@@ -59,19 +163,81 @@
"cell_type": "heading",
"level": 3,
"metadata": {},
- "source": "Example 2.3 Page No : 49"
+ "source": [
+ "Example 2.3 Page No : 49"
+ ]
},
{
"cell_type": "code",
"collapsed": false,
- "input": "'''\nexample 2.3\n'''\n\nclass HighArray:\n def __init__(self,size):\n self.a = []\n self.nElems = 0\n for i in range(size):\n self.a.append(0.0)\n \n def insert(self,value):\n # set value\n self.a[self.nElems] = value\n self.nElems += 1\n\n def find(self,searchKey):\n for j in range(self.nElems):\n if(self.a[j] == searchKey):\n return True\n return False\n \n def delete(self,value):\n for j in range(self.nElems):\n # look for it\n if (value == self.a[j]):\n self.a.remove(value)\n self.nElems -= 1\n \n def display(self):\n for j in range(self.nElems+1):\n print self.a[j] , \n print ''\n\narr = HighArray(100)\narr.insert(77)\narr.insert(99)\narr.insert(44)\narr.insert(55)\narr.insert(22)\narr.insert(88)\narr.insert(11)\narr.insert(00)\narr.insert(66)\narr.insert(33)\n\narr.display()\n\nsearchKey = 35\nif( arr.find(searchKey) ):\n print \"Found \" , searchKey\nelse:\n print \"Can't find \" , searchKey\narr.delete(00)\narr.delete(55)\narr.delete(99)\narr.display()",
+ "input": [
+ " \n",
+ "\n",
+ "class HighArray:\n",
+ " def __init__(self,size):\n",
+ " self.a = []\n",
+ " self.nElems = 0\n",
+ " for i in range(size):\n",
+ " self.a.append(0.0)\n",
+ " \n",
+ " def insert(self,value):\n",
+ " # set value\n",
+ " self.a[self.nElems] = value\n",
+ " self.nElems += 1\n",
+ "\n",
+ " def find(self,searchKey):\n",
+ " for j in range(self.nElems):\n",
+ " if(self.a[j] == searchKey):\n",
+ " return True\n",
+ " return False\n",
+ " \n",
+ " def delete(self,value):\n",
+ " for j in range(self.nElems):\n",
+ " # look for it\n",
+ " if (value == self.a[j]):\n",
+ " self.a.remove(value)\n",
+ " self.nElems -= 1\n",
+ " \n",
+ " def display(self):\n",
+ " for j in range(self.nElems+1):\n",
+ " print self.a[j] , \n",
+ " print ''\n",
+ "\n",
+ "arr = HighArray(100)\n",
+ "arr.insert(77)\n",
+ "arr.insert(99)\n",
+ "arr.insert(44)\n",
+ "arr.insert(55)\n",
+ "arr.insert(22)\n",
+ "arr.insert(88)\n",
+ "arr.insert(11)\n",
+ "arr.insert(00)\n",
+ "arr.insert(66)\n",
+ "arr.insert(33)\n",
+ "\n",
+ "arr.display()\n",
+ "\n",
+ "searchKey = 35\n",
+ "if( arr.find(searchKey) ):\n",
+ " print \"Found \" , searchKey\n",
+ "else:\n",
+ " print \"Can't find \" , searchKey\n",
+ "arr.delete(00)\n",
+ "arr.delete(55)\n",
+ "arr.delete(99)\n",
+ "arr.display()"
+ ],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
- "text": "77 99 44 55 22 88 11 0 66 33 0.0 \nCan't find 35\n77 44 22 88 11 66 33 \n"
+ "text": [
+ "77 99 44 55 22 88 11 0 66 33 0.0 \n",
+ "Can't find 35\n",
+ "77 44 22 88 11 66 33 \n"
+ ]
}
],
"prompt_number": 3
@@ -80,19 +246,92 @@
"cell_type": "heading",
"level": 3,
"metadata": {},
- "source": "Example 2.4 Page no : 59"
+ "source": [
+ "Example 2.4 Page no : 59"
+ ]
},
{
"cell_type": "code",
"collapsed": false,
- "input": "'''\nexample 2.4\n'''\n\nclass OrdArray:\n def __init__(self,m):\n self.a = []\n self.nElems = 0\n \n def size(self):\n return self.nElems\n\n def find(self,searchKey):\n lowerBound = 0\n upperBound = self.nElems-1\n while True:\n curIn = (lowerBound + upperBound ) / 2\n if(self.a[curIn]==searchKey):\n return curIn\n elif(lowerBound > upperBound):\n return self.nElems\n else:\n if(self.a[curIn] < searchKey):\n lowerBound = curIn + 1\n else:\n upperBound = curIn - 1 \n\n def insert(self,value):\n self.a.append(value)\n self.a.sort()\n self.nElems += 1\n\n def delete(self,value):\n j = self.find(value)\n if(j==self.nElems):\n return False\n else:\n self.a.remove(value)\n self.nElems -=1\n \n def display(self):\n for i in self.a:\n print i ,\n print ''\n\nmaxSize = 100\narr = OrdArray(maxSize)\narr.insert(77)\narr.insert(99) \narr.insert(44) \narr.insert(55) \narr.insert(22) \narr.insert(88) \narr.insert(11) \narr.insert(00) \narr.insert(66) \narr.insert(33) \nsearchKey = 55\nif( arr.find(searchKey) != arr.size() ):\n print 'Found ' , searchKey\nelse:\n print \"Can't find \" , searchKey\n \narr.display()\narr.delete(00)\narr.delete(55) \narr.delete(99) \narr.display()",
+ "input": [
+ " \n",
+ "\n",
+ "class OrdArray:\n",
+ " def __init__(self,m):\n",
+ " self.a = []\n",
+ " self.nElems = 0\n",
+ " \n",
+ " def size(self):\n",
+ " return self.nElems\n",
+ "\n",
+ " def find(self,searchKey):\n",
+ " lowerBound = 0\n",
+ " upperBound = self.nElems-1\n",
+ " while True:\n",
+ " curIn = (lowerBound + upperBound ) / 2\n",
+ " if(self.a[curIn]==searchKey):\n",
+ " return curIn\n",
+ " elif(lowerBound > upperBound):\n",
+ " return self.nElems\n",
+ " else:\n",
+ " if(self.a[curIn] < searchKey):\n",
+ " lowerBound = curIn + 1\n",
+ " else:\n",
+ " upperBound = curIn - 1 \n",
+ "\n",
+ " def insert(self,value):\n",
+ " self.a.append(value)\n",
+ " self.a.sort()\n",
+ " self.nElems += 1\n",
+ "\n",
+ " def delete(self,value):\n",
+ " j = self.find(value)\n",
+ " if(j==self.nElems):\n",
+ " return False\n",
+ " else:\n",
+ " self.a.remove(value)\n",
+ " self.nElems -=1\n",
+ " \n",
+ " def display(self):\n",
+ " for i in self.a:\n",
+ " print i ,\n",
+ " print ''\n",
+ "\n",
+ "maxSize = 100\n",
+ "arr = OrdArray(maxSize)\n",
+ "arr.insert(77)\n",
+ "arr.insert(99) \n",
+ "arr.insert(44) \n",
+ "arr.insert(55) \n",
+ "arr.insert(22) \n",
+ "arr.insert(88) \n",
+ "arr.insert(11) \n",
+ "arr.insert(00) \n",
+ "arr.insert(66) \n",
+ "arr.insert(33) \n",
+ "searchKey = 55\n",
+ "if( arr.find(searchKey) != arr.size() ):\n",
+ " print 'Found ' , searchKey\n",
+ "else:\n",
+ " print \"Can't find \" , searchKey\n",
+ " \n",
+ "arr.display()\n",
+ "arr.delete(00)\n",
+ "arr.delete(55) \n",
+ "arr.delete(99) \n",
+ "arr.display()"
+ ],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
- "text": "Found 55\n0 11 22 33 44 55 66 77 88 99 \n11 22 33 44 66 77 88 \n"
+ "text": [
+ "Found 55\n",
+ "0 11 22 33 44 55 66 77 88 99 \n",
+ "11 22 33 44 66 77 88 \n"
+ ]
}
],
"prompt_number": 4
@@ -101,19 +340,118 @@
"cell_type": "heading",
"level": 3,
"metadata": {},
- "source": "Example 2.5 Page no : 66"
+ "source": [
+ "Example 2.5 Page no : 66"
+ ]
},
{
"cell_type": "code",
"collapsed": false,
- "input": "'''\nexample 2.5\n'''\n\nclass Person:\n def __init__(self,last,first,a):\n self.lastName = last\n self.firstName = first\n self.age = a\n\n def displayPerson(self):\n print \"Last name: \" , self.lastName ,\", First name: \" , self.firstName ,\n print \", Age: \" , self.age\n\n def getLast(self):\n return self.lastName\n\nclass ClassDataArray:\n def __init__(self,m):\n self.a = []\n self.nElems = 0\n\n def find(self,searchName):\n f = False\n for j in range(self.nElems):\n if( self.a[j].getLast() ==searchName ) :\n f = True\n break \n if(not f):\n return None\n else:\n return self.a[j]\n\n def insert(self,last,first,age):\n self.a.append(Person(last, first, age))\n self.nElems += 1\n\n def delete(self,searchName):\n f = False\n for j in range(self.nElems):\n if( self.a[j].getLast() == searchName) :\n self.a.remove(self.a[j])\n f = True\n self.nElems -= 1\n break\n if(not f):\n return False\n else:\n return True\n \n def displayA(self):\n for j in range(self.nElems):\n self.a[j].displayPerson()\n\nmaxSize = 100\narr = ClassDataArray(maxSize)\narr.insert(\"Evans\", \"Patty\", 24)\narr.insert(\"Smith\", \"Lorraine\", 37)\narr.insert(\"Yee\", \"Tom\", 43)\narr.insert(\"Adams\", \"Henry\", 63)\narr.insert(\"Hashimoto\", \"Sato\", 21)\narr.insert(\"Stimson\", \"Henry\", 29)\narr.insert(\"Velasquez\", \"Jose\", 72)\narr.insert(\"Lamarque\", \"Henry\", 54)\narr.insert(\"Vang\", \"Minh\", 22)\narr.insert(\"Creswell\", \"Lucinda\", 18)\narr.displayA()\nsearchKey = \"Stimson\"\nfound=arr.find(searchKey)\nif(found != None ):\n print \"Found \" ,\n found.displayPerson()\nelse:\n print \"Can't find \" , searchKey\nprint \"Deleting Smith, Yee, and Creswell\"\narr.delete(\"Smith\")\narr.delete(\"Yee\")\narr.delete(\"Creswell\")\narr.displayA()",
+ "input": [
+ " \n",
+ "class Person:\n",
+ " def __init__(self,last,first,a):\n",
+ " self.lastName = last\n",
+ " self.firstName = first\n",
+ " self.age = a\n",
+ "\n",
+ " def displayPerson(self):\n",
+ " print \"Last name: \" , self.lastName ,\", First name: \" , self.firstName ,\n",
+ " print \", Age: \" , self.age\n",
+ "\n",
+ " def getLast(self):\n",
+ " return self.lastName\n",
+ "\n",
+ "class ClassDataArray:\n",
+ " def __init__(self,m):\n",
+ " self.a = []\n",
+ " self.nElems = 0\n",
+ "\n",
+ " def find(self,searchName):\n",
+ " f = False\n",
+ " for j in range(self.nElems):\n",
+ " if( self.a[j].getLast() ==searchName ) :\n",
+ " f = True\n",
+ " break \n",
+ " if(not f):\n",
+ " return None\n",
+ " else:\n",
+ " return self.a[j]\n",
+ "\n",
+ " def insert(self,last,first,age):\n",
+ " self.a.append(Person(last, first, age))\n",
+ " self.nElems += 1\n",
+ "\n",
+ " def delete(self,searchName):\n",
+ " f = False\n",
+ " for j in range(self.nElems):\n",
+ " if( self.a[j].getLast() == searchName) :\n",
+ " self.a.remove(self.a[j])\n",
+ " f = True\n",
+ " self.nElems -= 1\n",
+ " break\n",
+ " if(not f):\n",
+ " return False\n",
+ " else:\n",
+ " return True\n",
+ " \n",
+ " def displayA(self):\n",
+ " for j in range(self.nElems):\n",
+ " self.a[j].displayPerson()\n",
+ "\n",
+ "maxSize = 100\n",
+ "arr = ClassDataArray(maxSize)\n",
+ "arr.insert(\"Evans\", \"Patty\", 24)\n",
+ "arr.insert(\"Smith\", \"Lorraine\", 37)\n",
+ "arr.insert(\"Yee\", \"Tom\", 43)\n",
+ "arr.insert(\"Adams\", \"Henry\", 63)\n",
+ "arr.insert(\"Hashimoto\", \"Sato\", 21)\n",
+ "arr.insert(\"Stimson\", \"Henry\", 29)\n",
+ "arr.insert(\"Velasquez\", \"Jose\", 72)\n",
+ "arr.insert(\"Lamarque\", \"Henry\", 54)\n",
+ "arr.insert(\"Vang\", \"Minh\", 22)\n",
+ "arr.insert(\"Creswell\", \"Lucinda\", 18)\n",
+ "arr.displayA()\n",
+ "searchKey = \"Stimson\"\n",
+ "found=arr.find(searchKey)\n",
+ "if(found != None ):\n",
+ " print \"Found \" ,\n",
+ " found.displayPerson()\n",
+ "else:\n",
+ " print \"Can't find \" , searchKey\n",
+ "print \"Deleting Smith, Yee, and Creswell\"\n",
+ "arr.delete(\"Smith\")\n",
+ "arr.delete(\"Yee\")\n",
+ "arr.delete(\"Creswell\")\n",
+ "arr.displayA()"
+ ],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
- "text": "Last name: Evans , First name: Patty , Age: 24\nLast name: Smith , First name: Lorraine , Age: 37\nLast name: Yee , First name: Tom , Age: 43\nLast name: Adams , First name: Henry , Age: 63\nLast name: Hashimoto , First name: Sato , Age: 21\nLast name: Stimson , First name: Henry , Age: 29\nLast name: Velasquez , First name: Jose , Age: 72\nLast name: Lamarque , First name: Henry , Age: 54\nLast name: Vang , First name: Minh , Age: 22\nLast name: Creswell , First name: Lucinda , Age: 18\nFound Last name: Stimson , First name: Henry , Age: 29\nDeleting Smith, Yee, and Creswell\nLast name: Evans , First name: Patty , Age: 24\nLast name: Adams , First name: Henry , Age: 63\nLast name: Hashimoto , First name: Sato , Age: 21\nLast name: Stimson , First name: Henry , Age: 29\nLast name: Velasquez , First name: Jose , Age: 72\nLast name: Lamarque , First name: Henry , Age: 54\nLast name: Vang , First name: Minh , Age: 22\n"
+ "text": [
+ "Last name: Evans , First name: Patty , Age: 24\n",
+ "Last name: Smith , First name: Lorraine , Age: 37\n",
+ "Last name: Yee , First name: Tom , Age: 43\n",
+ "Last name: Adams , First name: Henry , Age: 63\n",
+ "Last name: Hashimoto , First name: Sato , Age: 21\n",
+ "Last name: Stimson , First name: Henry , Age: 29\n",
+ "Last name: Velasquez , First name: Jose , Age: 72\n",
+ "Last name: Lamarque , First name: Henry , Age: 54\n",
+ "Last name: Vang , First name: Minh , Age: 22\n",
+ "Last name: Creswell , First name: Lucinda , Age: 18\n",
+ "Found Last name: Stimson , First name: Henry , Age: 29\n",
+ "Deleting Smith, Yee, and Creswell\n",
+ "Last name: Evans , First name: Patty , Age: 24\n",
+ "Last name: Adams , First name: Henry , Age: 63\n",
+ "Last name: Hashimoto , First name: Sato , Age: 21\n",
+ "Last name: Stimson , First name: Henry , Age: 29\n",
+ "Last name: Velasquez , First name: Jose , Age: 72\n",
+ "Last name: Lamarque , First name: Henry , Age: 54\n",
+ "Last name: Vang , First name: Minh , Age: 22\n"
+ ]
}
],
"prompt_number": 5
@@ -121,7 +459,7 @@
{
"cell_type": "code",
"collapsed": false,
- "input": "",
+ "input": [],
"language": "python",
"metadata": {},
"outputs": []