日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

栈,递归

發(fā)布時(shí)間:2023/11/29 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 栈,递归 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 棧的基本操作

注意:是從后往前連接的

1 #include <stdio.h> 2 #include <Windows.h> 3 typedef struct sStack 4 { 5 int num; 6 struct sStack* pnext; 7 }Stack; 8 void push(Stack **pStack,int num); 9 int pop(Stack **pStack); 10 BOOL isEmpty(Stack *pStack); 11 12 int main() 13 { 14 Stack* pStack = NULL; 15 push(&pStack,1); 16 push(&pStack,2); 17 push(&pStack,3); 18 printf("%d\n",pop(&pStack)); 19 printf("%d\n",pop(&pStack)); 20 printf("%d\n",pop(&pStack)); 21 printf("%d\n",pop(&pStack)); 22 if( isEmpty(pStack)) 23 printf("棧為空\n"); 24 return 0; 25 } 26 void push(Stack **pStack,int num) 27 { 28 Stack* stack = (Stack*)malloc(sizeof(Stack)); 29 stack->num = num; 30 stack->pnext = NULL; 31 32 stack->pnext = *pStack; 33 *pStack = stack; 34 //不需要判斷棧是否為空,直接push就好 35 } 36 int pop(Stack **pStack) 37 { 38 int a = 0; 39 Stack* temp; 40 if(isEmpty( *pStack)) 41 return -1; 42 a = (*pStack)->num; 43 temp = *pStack; 44 (*pStack) = (*pStack)->pnext; 45 free(temp);//彈出之后要?jiǎng)h除 46 return a; 47 } 48 BOOL isEmpty(Stack *pStack) 49 { 50 if(pStack == NULL) 51 return TRUE; 52 else 53 return FALSE; 54 }基本操作
  • ?遞歸
1 #include <stdio.h> 2 int JIECHENG(int); 3 void Out(int,int ); 4 int main() 5 { 6 printf("%d\n",JIECHENG(5)); 7 Out(1,4); 8 return 0; 9 } 10 int JIECHENG(int num) 11 { 12 if(num == 1) 13 { 14 return 1; 15 } 16 else return num*JIECHENG(num-1); 17 } 18 void Out(int begin,int end) 19 { 20 if(begin <= end) 21 { 22 printf("%d\n",begin); 23 Out(begin+1,end); 24 printf("%d\n",begin); 25 } 26 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/Lune-Qiu/p/7879118.html

總結(jié)

以上是生活随笔為你收集整理的栈,递归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。