summaryrefslogtreecommitdiff
path: root/Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb
diff options
context:
space:
mode:
authorPrashant S2020-04-14 10:25:32 +0530
committerGitHub2020-04-14 10:25:32 +0530
commit06b09e7d29d252fb2f5a056eeb8bd1264ff6a333 (patch)
tree2b1df110e24ff0174830d7f825f43ff1c134d1af /Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb
parentabb52650288b08a680335531742a7126ad0fb846 (diff)
parent476705d693c7122d34f9b049fa79b935405c9b49 (diff)
downloadall-scilab-tbc-books-ipynb-master.tar.gz
all-scilab-tbc-books-ipynb-master.tar.bz2
all-scilab-tbc-books-ipynb-master.zip
Merge pull request #1 from prashantsinalkar/masterHEADmaster
Initial commit
Diffstat (limited to 'Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb')
-rw-r--r--Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb355
1 files changed, 355 insertions, 0 deletions
diff --git a/Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb b/Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb
new file mode 100644
index 0000000..4d270b6
--- /dev/null
+++ b/Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb
@@ -0,0 +1,355 @@
+{
+"cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 3: Recursion"
+ ]
+ },
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.1: Multiplication_of_2_numbers.sci"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Multiplication of 2 numbers\n",
+"funcprot(0)\n",
+"function[val]=mul(a,b)\n",
+" if(b==1)\n",
+" val=a;\n",
+" else\n",
+" val=a+mul(a,b-1);\n",
+" end\n",
+"endfunction\n",
+"//Calling Routine:\n",
+"a=4;\n",
+"b=3;\n",
+"val=mul(4,3)\n",
+"printf('Product of %d and %d is %d',a,b,val);"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.2: Factorial_of_a_number.sci"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"//Function To Caluculate factorial of a given number\n",
+"function[value]=fact(a)\n",
+" value=-1;\n",
+" if(a<0|a>170)\n",
+" disp('Invalid valu.');\n",
+" break;\n",
+" else\n",
+" if(a==1|a==0)\n",
+" value=1;\n",
+" else\n",
+" value=a*fact(a-1);\n",
+" end\n",
+" end\n",
+"endfunction\n",
+"//Calling Routine:\n",
+"a=5;\n",
+"val=fact(a);\n",
+"printf('%d factorial is %d',a,val);"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.3: Fibbonacci_series.sci"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"function[fib]=fibbo(n)\n",
+" fib=-1;\n",
+" if(n<0)\n",
+" disp('Invalid Entry');\n",
+" else\n",
+" if(n<=1)\n",
+" fib=n;\n",
+" else\n",
+" fib=fibbo(n-1)+fibbo(n-2);\n",
+" end\n",
+" end\n",
+"endfunction\n",
+"\n",
+"function[l]=fibbon(n)\n",
+" x=0;\n",
+" l=(fibbo(0));\n",
+" for x=1:n-1\n",
+" l=[l(:,:),fibbo(x)];\n",
+" end\n",
+" disp(l);\n",
+"endfunction\n",
+"//Calling Routine:\n",
+"n=5;\n",
+"l=fibbon(n)"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.4: Binary_Search.sci"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"function[b]=bsear(a,l,u,n)\n",
+" if(l>u)\n",
+" b=-1;\n",
+" else\n",
+" mid=int32((l+u)/2);\n",
+" if(n==a(mid))\n",
+" b=n;\n",
+" else\n",
+" if(n>a(mid))\n",
+" mid=int32((l+u)/2);\n",
+" b=bsear(a,mid+1,u,n);\n",
+" else\n",
+" mid=int32((l+u)/2);\n",
+" b=bsear(a,l,mid-1,n);\n",
+" end\n",
+" end\n",
+" end\n",
+"endfunction\n",
+"\n",
+"function[b]=bsearc(a,l,u,n)\n",
+" b=bsear(a,l,u,n);\n",
+" if(b==-1)\n",
+" disp('The element is not there');\n",
+" end\n",
+" if(b==n)\n",
+" disp('The element is there');\n",
+" end\n",
+"endfunction\n",
+"//Calling Routine:\n",
+"a=[12 122 3233 12121]//Must be sorted:\n",
+"b=bsearc(a,1,4,12)"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.5: Tower_Of_Hanoi.sci"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"function[]=towe(n,from,to,aux)\n",
+" if(n==1);\n",
+" disp(to,'to ',from,'Move peg 1 from');\n",
+" else\n",
+" towe(n-1,from,aux,to);\n",
+" disp(to,'to',from,'from',n,'Move Peg');\n",
+" towe(n-1,aux,to,from);\n",
+" end\n",
+"endfunction\n",
+"\n",
+"function[]=tower(from,to,aux)\n",
+" n=input('Enter n');\n",
+" towe(n,from,to,aux);\n",
+"endfunction\n",
+"//Calling Routine:\n",
+"n=3//Number of disks\n",
+"towe(n,'a','b','c')"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.6: Prefix_To_Postfix_Conversion.sci"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"funcprot(0)\n",
+"function[y]=find1(g)\n",
+" length1=strlen(g);\n",
+" if(length1==0)\n",
+" y=0;\n",
+" else\n",
+" if(isalphanum(g(1)))\n",
+" y=1;\n",
+" else\n",
+" if(length1<2)\n",
+" y=0;\n",
+" else\n",
+" s=strsplit(g,1);\n",
+" s=s(2);\n",
+" m=find1(s);\n",
+" if(m==0|length1==m)\n",
+" y=0;\n",
+" else\n",
+" e=strsplit(g,m+1);\n",
+" e=e(2);\n",
+" n=find1(e);\n",
+" if(n==0)\n",
+" y=0;\n",
+" else\n",
+" y=m+n+1;\n",
+" end\n",
+" end\n",
+" end\n",
+" end\n",
+" end\n",
+" endfunction\n",
+" function[l]=strlen(x)\n",
+" i=1;\n",
+" l=0;\n",
+" [j,k]=size(x)\n",
+" for i=1:k\n",
+" l=l+length(x(i));\n",
+" end\n",
+"endfunction\n",
+"function[po]=pr2po(pr)\n",
+" length1=strlen(pr);\n",
+" if(length1==1)\n",
+" if(isalphanum(pr))\n",
+" po(1)=pr(1);\n",
+" else\n",
+" disp('Invalid string\n');\n",
+" end\n",
+" else\n",
+" s=strsplit(pr,1);\n",
+" g=s(2);\n",
+" m=find1(g);\n",
+" s=strsplit(pr,m+1);\n",
+" g1=s(2);\n",
+" n=find1(g1);\n",
+" f=strsplit(pr,1);\n",
+" c=f(1);\n",
+" if((c~='+'&c~='-'&c~='/'&c~='*')|m==0|n==0|m+n+1~=length1)\n",
+" printf('Invalid string\n');\n",
+" else\n",
+" s=strsplit(pr,1);\n",
+" s=strsplit(s(2),m);\n",
+" opnd1=s(1);\n",
+" s=strsplit(pr,m+1);\n",
+" opnd2=s(2);\n",
+" post1=pr2po(opnd1);\n",
+" post2=pr2po(opnd2);\n",
+" post=[post1(:,:) post2(:,:)]\n",
+" f=strsplit(pr,1);\n",
+" c=f(1);\n",
+" post3=[post(:,:) c];\n",
+" po=post3;\n",
+" end\n",
+" end \n",
+" endfunction\n",
+" //Calling Routine:\n",
+" \n",
+" s1='+-*abcd';//no spaces between\n",
+" po=pr2po(s1);\n",
+" disp(po,'postfix is');\n",
+" s1='+-*/+-*/abcdefghi'\n",
+" po=pr2po(s1);\n",
+" disp(po,'postfix is');"
+ ]
+ }
+,
+{
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.7: Simulating_Factorial_By_Non_recursion.sci"
+ ]
+ },
+ {
+"cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+"source": [
+"\n",
+"function[]=simu_fact(n);\n",
+" a=1;\n",
+" while(n>0)\n",
+" a=a*n;\n",
+" n=n-1;\n",
+" end\n",
+" disp(a,'Factorial is ');\n",
+"endfunction\n",
+"//Calling Routine:\n",
+"a=9\n",
+"simu_fact(a)"
+ ]
+ }
+],
+"metadata": {
+ "kernelspec": {
+ "display_name": "Scilab",
+ "language": "scilab",
+ "name": "scilab"
+ },
+ "language_info": {
+ "file_extension": ".sce",
+ "help_links": [
+ {
+ "text": "MetaKernel Magics",
+ "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md"
+ }
+ ],
+ "mimetype": "text/x-octave",
+ "name": "scilab",
+ "version": "0.7.1"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}