当前位置: 首页 > news >正文

百度云做网站从0开始做网站

百度云做网站,从0开始做网站,建设网站需要的资源,广告设计制作图片堆栈的定义、入栈、出栈、查询栈顶 #include stdio.h #include stdlib.htypedef int DataType;// 定义栈节点结构体 struct StackNode;struct StackNode {DataType data; // 节点数据struct StackNode* next; // 指向下一个节点的指针 };// 定… 堆栈的定义、入栈、出栈、查询栈顶 #include stdio.h #include stdlib.htypedef int DataType;// 定义栈节点结构体 struct StackNode;struct StackNode {DataType data; // 节点数据struct StackNode* next; // 指向下一个节点的指针 };// 定义栈结构体 struct Stack {struct StackNode* head; // 栈顶节点指针int size; // 栈的大小元素数量 };// 将元素压入栈中 void StackPushStack(struct Stack* stk, DataType dt) {struct StackNode* vtx (struct StackNode*)malloc(sizeof(struct StackNode)); // 创建新节点vtx-next stk-head; // 新节点的下一个节点指针指向栈顶节点vtx-data dt; // 设置新节点的数据为传入的数据stk-head vtx; // 更新栈顶节点为新节点stk-size; // 增加栈的大小 }// 将栈顶元素弹出栈 void StackPopStack(struct Stack* stk) {struct StackNode* temp stk-head; // 临时存储栈顶节点指针stk-head temp-next; // 更新栈顶节点为下一个节点free(temp); // 释放原栈顶节点的内存--stk-size; // 减少栈的大小 }// 获取栈顶元素的值 DataType StackGetTop(struct Stack* stk) {return stk-head-data; // 返回栈顶节点的数据 }int main() {// 创建一个栈struct Stack myStack;myStack.head NULL; // 初始化栈顶节点指针为空myStack.size 0; // 初始化栈的大小为0// 将元素压入栈中StackPushStack(myStack, 10);StackPushStack(myStack, 20);StackPushStack(myStack, 30);// 获取栈顶元素并打印DataType top StackGetTop(myStack);printf(Top element: %d\n, top);// 从栈中弹出一个元素StackPopStack(myStack);// 获取新的栈顶元素并打印top StackGetTop(myStack);printf(Top element after popping: %d\n, top);return 0; } 例题1 括号的最大嵌套深度 提示 如果字符串满足以下条件之一则可以称之为 有效括号字符串valid parentheses string可以简写为 VPS 字符串是一个空字符串 或者是一个不为 ( 或 ) 的单字符。字符串可以写为 ABA 与 B 字符串连接其中 A 和 B 都是 有效括号字符串 。字符串可以写为 (A)其中 A 是一个 有效括号字符串 。 类似地可以定义任何有效括号字符串 S 的 嵌套深度 depth(S) depth() 0depth(C) 0其中 C 是单个字符的字符串且该字符不是 ( 或者 )depth(A B) max(depth(A), depth(B))其中 A 和 B 都是 有效括号字符串depth(( A )) 1 depth(A)其中 A 是一个 有效括号字符串 例如、()()、()(()()) 都是 有效括号字符串嵌套深度分别为 0、1、2而 )( 、(() 都不是 有效括号字符串 。 给你一个 有效括号字符串 s返回该字符串的 s 嵌套深度 。 示例 1 输入s (1(2*3)((8)/4))1 输出3 解释数字 8 在嵌套的 3 层括号中。示例 2 输入s (1)((2))(((3))) 输出3提示 1 s.length 100s 由数字 0-9 和字符 、-、*、/、(、) 组成题目数据保证括号表达式 s 是 有效的括号表达式 #include stdio.h #include stdlib.h typedef struct {char* stack;int top; } Stack;Stack* createStack(int capacity) {Stack* stack (Stack*)malloc(sizeof(Stack));stack-stack (char*)malloc(capacity * sizeof(char));stack-top -1;return stack; }void push(Stack* stack, char element) {stack-stack[stack-top] element; }char pop(Stack* stack) {return stack-stack[stack-top--]; }int isEmpty(Stack* stack) {return stack-top -1; } int maxDepth(char* s) {int maxDepth 0;int currentDepth 0;int i 0;Stack* stack createStack(100);while (s[i] ! \0) {if (s[i] () {push(stack, s[i]);currentDepth;if (currentDepth maxDepth) {maxDepth currentDepth;}} else if (s[i] )) {pop(stack);currentDepth--;}i;}return maxDepth; } int main() {char s[] (1(2*3)((8)/4))1;int depth maxDepth(s);printf(The maximum nesting depth is: %d\n, depth);return 0; } 例题2 回文链表 给定一个链表的 头节点 head 请判断其是否为回文链表。 如果一个链表是回文那么链表节点序列从前往后看和从后往前看是相同的。 示例 1 输入: head [1,2,3,3,2,1] 输出: true 示例 2 输入: head [1,2] 输出: false提示 链表 L 的长度范围为 [1, 105]0  node.val 9 #include stdio.h #include stdbool.h #include stdlib.hstruct ListNode {int val;struct ListNode* next; };// 创建一个堆栈结构 struct Stack {int* array;int top;int capacity; };// 初始化堆栈 struct Stack* createStack(int capacity) {struct Stack* stack (struct Stack*)malloc(sizeof(struct Stack));stack-array (int*)malloc(capacity * sizeof(int));stack-top -1;stack-capacity capacity;return stack; }// 判断堆栈是否为空 bool isEmpty(struct Stack* stack) {return stack-top -1; }// 判断堆栈是否已满 bool isFull(struct Stack* stack) {return stack-top stack-capacity - 1; }// 将元素压入堆栈 void push(struct Stack* stack, int value) {if (isFull(stack)) {return;}stack-array[stack-top] value; }// 从堆栈中弹出元素 int pop(struct Stack* stack) {if (isEmpty(stack)) {return -1;}return stack-array[stack-top--]; }// 判断链表是否为回文链表 bool isPalindrome(struct ListNode* head) {if (!head || !head-next) {return true;}// 统计链表的长度int length 0;struct ListNode* curr head;while (curr) {length;curr curr-next;}// 将链表前半部分的值压入堆栈struct Stack* stack createStack(length / 2);curr head;int i 0; for (i 0; i length / 2; i) {push(stack, curr-val);curr curr-next;}// 如果链表长度为奇数跳过中间节点if (length % 2 1) {curr curr-next;}// 比较链表后半部分的值与堆栈中弹出的值是否相等while (curr) {int value pop(stack);if (value ! curr-val) {return false;}curr curr-next;}return true; }int main() {// 创建链表 [1, 2, 3, 2, 1]struct ListNode* head (struct ListNode*)malloc(sizeof(struct ListNode));head-val 1;head-next (struct ListNode*)malloc(sizeof(struct ListNode));head-next-val 2;head-next-next (struct ListNode*)malloc(sizeof(struct ListNode));head-next-next-val 3;head-next-next-next (struct ListNode*)malloc(sizeof(struct ListNode));head-next-next-next-val 2;head-next-next-next-next (struct ListNode*)malloc(sizeof(struct ListNode));head-next-next-next-next-val 1;head-next-next-next-next-next NULL;bool isPalin isPalindrome(head);if (isPalin) {printf(The linked list is a palindrome.\n);} else {printf(The linked list is not a palindrome.\n);}// 释放链表的内存struct ListNode* curr head;while (curr) {struct ListNode* temp curr;curr curr-next;free(temp);}return 0; } 例题3 反转链表 给你单链表的头节点 head 请你反转链表并返回反转后的链表。 示例 1 输入head [1,2,3,4,5] 输出[5,4,3,2,1]示例 2 输入head [1,2] 输出[2,1]示例 3 输入head [] 输出[]提示 链表中节点的数目范围是 [0, 5000]-5000 Node.val 5000 #include stdio.h #include stdbool.h #include stdlib.hstruct ListNode {int val;struct ListNode* next; };// 创建一个堆栈结构 struct Stack {int* array;int top;int capacity; };// 初始化堆栈 struct Stack* createStack(int capacity) {struct Stack* stack (struct Stack*)malloc(sizeof(struct Stack));stack-array (int*)malloc(capacity * sizeof(int));stack-top -1;stack-capacity capacity;return stack; } // 判断堆栈是否为空 bool isEmpty(struct Stack* stack) {return stack-top -1; } // 判断堆栈是否已满 bool isFull(struct Stack* stack) {return stack-top stack-capacity - 1; } // 将元素压入堆栈 void push(struct Stack* stack, int value) {if (isFull(stack)) {return;}stack-array[stack-top] value; } // 从堆栈中弹出元素 int pop(struct Stack* stack) {if (isEmpty(stack)) {return -1;}return stack-array[stack-top--]; } // 反转链表 struct ListNode* reverseList(struct ListNode* head) {if (!head || !head-next) {return head;}// 统计链表的长度int length 0;struct ListNode* curr head;while (curr) {length;curr curr-next;}// 将链表的值压入堆栈struct Stack* stack createStack(length);curr head;int i 0; for (i 0; i length; i) {push(stack, curr-val);curr curr-next;}// 将堆栈弹出的值给链表 curr head;while (curr) {curr-val pop(stack);curr curr-next;}return head; } int main() {// 创建链表 [1, 2, 3, 4, 5]struct ListNode* head (struct ListNode*)malloc(sizeof(struct ListNode));head-val 1;head-next (struct ListNode*)malloc(sizeof(struct ListNode));head-next-val 2;head-next-next (struct ListNode*)malloc(sizeof(struct ListNode));head-next-next-val 3;head-next-next-next (struct ListNode*)malloc(sizeof(struct ListNode));head-next-next-next-val 4;head-next-next-next-next (struct ListNode*)malloc(sizeof(struct ListNode));head-next-next-next-next-val 5;head-next-next-next-next-next NULL;headreverseList(head);int i0;for(i0;i5;i){printf(%d ,head-val);headhead-next;}// 释放链表的内存struct ListNode* curr head;while (curr) {struct ListNode* temp curr;curr curr-next;free(temp);}return 0; }
http://www.pierceye.com/news/332490/

相关文章:

  • 余姚建设网站wordpress百度分享插件
  • iis网站服务器 建立出现问题吉林市城市建设档案馆官方网站
  • wordpress网站图片迁移打开一个网站为繁体字是怎么做的
  • 东莞规划局官方网站做网站要学一些什么
  • 网站动效是代码做的吗网站模板侵权问题
  • 网站开发语言总结有哪些怎么样让网站宣传自己
  • 网站建设公司哪家好找建设网站公司哪家好
  • 网站建设网上学a8直播免费版
  • 网上下载的免费网站模板怎么用灯箱网站开发
  • 四平市建设局网站贵州省民贸民品企业信息管理系统
  • 周口网站制作公司哪家好河南省信息服务平台官网
  • 然后建设自营网站湘潭市优化办
  • 大兴专业网站开发公司皮具网站建设策划书
  • 广告投放跟网站建设一样吗呼和浩特免费制作网站
  • 个人做网站的时代已经过去个人手机网站
  • 用vps做网站深圳广告公司招聘安装工人
  • 建设电影网站怎么上传电影如何建企业网站
  • 响应式网站制作公司org域名购买
  • 石家庄网站建设德信互联科技有限公司爬取漫画数据做网站
  • 国内免费iphone网站百度自然排名优化
  • 自己做网站主机做网站和推广
  • wordpress 淘宝嘉兴做网站优化
  • h5 网站开发流程asp个人网站建设
  • 网站建设 正邦企业邮箱怎么认证
  • 建设流网站项目成都住建局官网首页
  • 网站简历文字如何空行产品如何推广市场
  • 吕梁网站设计腾讯营销平台
  • 如何查看网站流量公众号申请网站
  • 阐述企业搭建网站的重要性免费做效果图的网站有哪些
  • 快速网站搭建南宁广告公司网站建设