当前位置: 首页 > 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.pierceye.com/news/315758/

相关文章:

  • 公司网站设计单页网站怎么做排名
  • 公司产品网站应该怎么做页面模板第三方应用
  • 绍兴网站建设网站站长 网站对比
  • 廊坊哪里做网站好费用
  • 织梦建站教程wordpress支持mysqli
  • 松江醉白池网站建设投资公司设立条件
  • 杭州网络seo优化知识
  • 对网站的建议和优化网银汇款企业做网站用途写什么
  • 商务网站的功能和建设制作外贸网站模板
  • 如何防止网站挂黑链怎么购买国外的域名
  • 企业官方网站地址怎么填微信页面设计网站
  • 国外购物网站有哪些郑州网站搜索排名
  • seo网站优化推广费用装饰行业网站建设
  • idea的网站开发登录页面做网页的
  • 寻找大连网站建设wordpress换模板 seo
  • 二手房公司网站源码网站的维护步骤
  • 衡水企业网站建设公司wordpress 快速回复
  • 网站维护需要关闭网站么找哪些公司做网站
  • 阿里巴巴做轮播网站如何建设学校的微网站首页
  • 国内设计好的网站案例网店设计风格怎么写
  • 网站建设长沙创建网页需要多少钱
  • 南通电商网站建设网站背景怎么设置
  • 无锡网站托管aspnet通讯录网站开发
  • 卫计网站建设工作总结铜陵建设行业培训学校网站
  • 手机网站竞价网页界面设计遵循的原则
  • 徐州seo推广公司广州营销型网站优化
  • 小说网站首页模板安徽华力建设集团网站
  • 减肥网站如何做公司企业模板
  • 郑州网站建设搜q.479185700怎么在百度上推广自己的公司信息
  • 深圳住建设局官方网站大连在哪个省市