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

做微信充值网站todoist wordpress

做微信充值网站,todoist wordpress,免费空白ppt模板下载,wordpress古腾堡编辑器如何使用文章目录 链表的相关知识链表的创建:模拟方式建立链表的**递归创建** 链表的读取遍历读取递归读取 完整代码 链表的相关知识 链表有时会具有头节点#xff0c;头节点的指针指向第一个节点的地址#xff0c;其本身的数据域可以根据自己的选择进行赋值   接下来我将以将int转… 文章目录 链表的相关知识链表的创建:模拟方式建立链表的**递归创建** 链表的读取遍历读取递归读取 完整代码 链表的相关知识 链表有时会具有头节点头节点的指针指向第一个节点的地址其本身的数据域可以根据自己的选择进行赋值   接下来我将以将int转换为链表为例进行演示如果有什么地方可以改进也希望路过大神能够指出 链表的创建: 链表的结构定义一般如下即由本身的数据和指向下一个节点的指针构成 type ListNode struct {Val intNext *ListNode//不能直接赋值listnode避免产生嵌套引用 }链表的创建每个节点存储一位数字在创建的过程中 我们需要设置中间的可变节点不然我们可能会丢失对链表的第一个节点的索引以下的例子中我们就使用middle为中间节点将head设置为头节点并代表完整的链表 模拟方式建立 我们利用迭代的方法只要还存在num就更新创建一个新的节点 // 尝试建立有头节点的链表关键在于赋值给middle.next func CreateList(nums int) *ListNode {Head : new(ListNode) //这代表一整个链表并通过这里的头节点进行标注方便该链表的引用middle : Head //middle视作Head链表的中间节点其一直改变for nums 0 {middle.Next ListNode{Val: nums % 10}//头节点赋值方法fmt.Printf(middle.Val: %v\n, middle.Val)middle middle.Nextnums / 10}return Head }链表的递归创建 // 递归建立链表 func RecurCreateList(nums int) *ListNode {//在递归时好像不需要单独保存头节点位置后续的位置会递归存储在next中不用考虑被覆盖的问题middle : new(ListNode) //建立头指针其指针不变// 123%103// 12.3%102// 1.23%101// 120%100// 12 %102// 1.2%101if nums 1 || nums%10 0 {middle.Val nums % 10fmt.Printf(middle.Val: %v\n, middle.Val)if nums 1 {nums / 10middle.Next RecurCreateList(nums)}}return middle }链表的读取 遍历读取 链表读取时我们需要根据是否具有头节点进行一定的调整下面是使用遍历迭代进行创建的过程 // 尝试遍历读取链表 func ReadList(L ListNode) {middle : L //将头节点赋予这里的中间节点middle//循环读取链表的内容for middle.Next ! nil {v : middle.Next.Val //由于我们这里判断的是本身节点是否为空所以在输出时使用下一节点的值进行输出避免错过某个值fmt.Printf(v: %v\n, v)// // fmt.Printf(L: %v\n, L)middle *middle.Next// // fmt.Printf(L: %v\n, L)} }递归读取 下面为使用递归进行读取的方法 由于节点的定义过程中使用内嵌在建立相关函数时都使用指针比较方便[ 虽然前面都没注意:( ], // 尝试递归读取链表 func RecurReadList(L *ListNode) {fmt.Printf(L.Val: %v\n, L.Val) //打印出此节点中的Val//如果本结点的指针不为空即还有下一个节点继续读取if L.Next ! nil {RecurReadList(L.Next) //将下个节点的指针传入}//如果运行到这里说明指针为空函数也就到此结束了 } 完整代码 package mainimport (fmt )type ListNode struct {Val intNext *ListNode }func main() {// l : CreateList(13)l : RecurCreateList(13)fmt.Printf(l: %v\n, *l)// ReadList(*l)RecurReadList(l)// RecurReadList(l.Next)// fmt.Println(l.Next.Val) }// 尝试建立有头节点的链表关键在于赋值给middle.next func CreateList(nums int) *ListNode {Head : new(ListNode) //这代表一整个链表并通过这里的头节点进行标注方便该链表的引用middle : Head //middle视作Head链表的中间节点其一直改变for nums 0 {middle.Next ListNode{Val: nums % 10} //头节点赋值方法fmt.Printf(middle.Val: %v\n, middle.Val)middle middle.Nextnums / 10}return Head }// 递归建立链表 func RecurCreateList(nums int) *ListNode {//在递归时好像不需要单独保存头节点位置后续的位置会递归存储在next中不用考虑被覆盖的问题middle : new(ListNode) //建立头指针其指针不变// 123%103// 12.3%102// 1.23%101// 120%100// 12 %102// 1.2%101if nums 1 || nums%10 0 {middle.Val nums % 10fmt.Printf(middle.Val: %v\n, middle.Val)if nums 1 {nums / 10middle.Next RecurCreateList(nums)}}return middle }// 尝试遍历读取链表 func ReadList(L ListNode) {middle : L //将头节点赋予这里的中间节点middle//循环读取链表的内容for middle.Next ! nil {v : middle.Next.Val //由于我们这里判断的是本身节点是否为空所以在输出时使用下一节点的值进行输出避免错过某个值fmt.Printf(v: %v\n, v)// // fmt.Printf(L: %v\n, L)middle *middle.Next// // fmt.Printf(L: %v\n, L)} }// 尝试递归读取链表 func RecurReadList(L *ListNode) {fmt.Printf(L.Val: %v\n, L.Val) //打印出此节点中的Val//如果本结点的指针不为空即还有下一个节点继续读取if L.Next ! nil {RecurReadList(L.Next) //将下个节点的指针传入}//如果运行到这里说明指针为空函数也就到此结束了 }
http://www.zqtcl.cn/news/315758/

相关文章:

  • 搜狗搜索网站提交入口在哪里做卖车网站
  • 河南省百城建设提质网站新人怎么做电商
  • 建设机械网站制作创建个人网站教案
  • 无锡网站推广装修风格大全2023新款
  • 在线设计logo免费网站如何在网站上添加qq
  • 高端网站建设哪里好网站建设与管理案例教程
  • 云南专业网站建设上海百度移动关键词排名优化
  • 如何搭建一个完整的网站wordpress 小程序开发
  • 外贸网站建设关键点为网站网站做代理被判缓刑
  • 网站免费正能量小说台州百度关键词优化
  • 保定自助建站做静态网站
  • 旅游网站对比模板免费招收手游代理
  • phpstudy网站建设教程wordpress破解管理员帐号
  • 商务网站规划与建设心得北京小程序制作首选华网天下
  • 果洛电子商务网站建设多少钱公司网站建设选什么服务器
  • 莱芜做网站公司网站建设表单教案
  • 建设酒类产品网站的好处遵义网站制作费用
  • 高端网站设计价格wordpress登录下载附件
  • 国内有名的网站设计公司wordpress缓存插件比拼
  • 网站的建设和推广直播营销策划方案范文
  • 做购物平台网站 民治百度导航地图下载
  • 东莞市主营网站建设服务机构青岛建站公司电话
  • 做网站技术wordpress漂亮手机网站模板下载
  • 网站怎么更新网页内容网络推广怎么找客户
  • 如何编写网站建设销售的心得适合装饰公司的名字
  • 有什么免费建网站网站pr查询
  • flash+xml网站模板简述网站制作的一般流程
  • 成都私人做网站建设怎么切页面做网站
  • 聊城做网站的公司论坛外链代发
  • 廊坊企业自助建站网站框架设计好后怎么做