[日常] 算法-单链表的创建-尾插法
1.创建头结点,头结点的next指向null
2.把头结点赋值给一个中间变量
3.循环中创建结点, 中间变量的next指向新结点
4.新结点覆盖中间变量
c语言版:
#include <stdio.h>
#include <stdlib.h>typedef struct Node{char* data;struct Node* next;
} Node;
typedef Node* LinkList;
int main(){//指针所占字节与系统有关,一般32位系统,一个指针占4个字节printf("%d\n",sizeof(Node));//输出 4+4=8//头结点LinkList head=(LinkList)malloc(sizeof(Node));//第一个结点Node* node1=(Node*)malloc(sizeof(Node));node1->data="aaa";node1->next=NULL;//第二个结点Node* node2=(Node*)malloc(sizeof(Node));node2->data="bbb";node2->next=NULL;head->next=node1;node1->next=node2;//遍历while(head->next){head=head->next;printf("%s\n",head->data);} //2.尾插法LinkList list=(LinkList)malloc(sizeof(Node));list->next=NULL;LinkList temp=list;//中间过渡for(int i=0;i<10;i++){LinkList node=(LinkList)malloc(sizeof(Node));char* str=(char*)malloc(4);//给字符串分配内存sprintf(str,"aaa%d",i);node->data=str;temp->next=node;temp=node;//循环的时候,每次覆盖成最新的结点} //遍历while(list->next){list=list->next;printf("%s\n",list->data);}
}
go语言版:
package mainimport("fmt" )type Node struct{data stringnext *Node } type LinkList *Node func main(){list:=new(Node)list.next=nilvar node LinkListtemp:=listfor i:=0;i<10;i++{node=new(Node)node.data="aaa"+fmt.Sprintf("%d",i)node.next=niltemp.next=nodetemp=node} //遍历for{list=list.nextfmt.Println(list.data)if list.next==nil{break} } }
php语言版:
<?php
class Node{public $data;public $next;
}
//尾插法
$list=new Node();
$list->next=null;
$temp=$list;
for($i=0;$i<10;$i++){$node=new Node();$node->data="aaa{$i}";$node->next=null;$temp->next=$node;$temp=$node;
}//遍历
while($list->next){$list=$list->next;echo $list->data."\n";
}
[日常] 算法-单链表的创建-尾插法相关推荐
- 单链表头插法和尾插法
1.头插法 头插法:每次把新节点插入到头节点之后,创建的单链表和数据输入顺序相反. 防止单链表是空的而设的. 当链表为空的时候,带头结点的头指针就指向头结点,头结点的指针域存储的数值为NULL. &l ...
- java 如何实现单链表中的尾插法
文章目录 尾插法 1 思路 2 插入过程 2.1 定义node节点 2.2 定义一个cur来查找单链表的尾部位置 2.3 将node插入到单链表的尾部位置 2.4 让node结点与前一个结点连接起来 ...
- 单链表的创建(头插法尾插法),插入,删除
<span style="font-size:18px;">#include <iostream> #include <cstdio> #inc ...
- 侃侃算法EP2·链表的头插尾插
1. 前言 这个板块旨在记录一些日常中或是面试中会问到的算法和数据结构相关的内容,更多是给自己总结和需要的人分享.在内容部分可能由于我的阅历和实战经历不足,会有忽视或是写错的点,还望轻喷. 2. 内容 ...
- c语言随机生成字母链表,C语言 尾插法建立单链表 插入26个英文字母
C语言 尾插法建立单链表 插入26个英文字母0 uosnmzer2016.09.13浏览131次分享举报 #include #include #include /* run this program ...
- 162_附加145路由器项目中所用到的单链表操作_尾插、头插、遍历打印、查找ip、删除节点数据、释放全部、保存终端输入IP到文件、文件中的过滤IP插入到链表
动图: 过滤IP的链表 #include "ip_file.h" #define ip_config_name "ip_config"//与main.c共用一个 ...
- 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表
http://blog.csdn.net/abclixu123/article/details/8210109 链表也是线性表的一种,与顺序表不同的是,它在内存中不是连续存放的.在C语言中,链表是通过 ...
- C语言头插法尾插法创建单链表
前言 链表 [Linked List]:链表是由一组不必相连[不必相连:可以连续也可以不连续]的内存结构 [节点],按特定的顺序链接在一起的抽象数据类型. 下面介绍单链表的创建: 创建节点 链表是由一 ...
- 不带头结点的单链表的创建(头插法和尾插法)
1.用头插法建立不带头结点的单链表 #include<iostream> using namespace std;//单链表的结构体 typedef struct Node {int da ...
最新文章
- 深入聊一聊 Spring AOP 实现机制
- 计算机无法屏幕亮度,电脑屏幕亮度无法调节怎么办
- npm、webpack、vue-cli 快速上手版
- 【离散数学中的数据结构与算法】九 鸽巢原理
- 网页底部的版权信息_Shopify底部的版权信息(Powered by Shopify )如何删除
- openstack部署(四)--网络配置(Networking)
- [Android系列—] 2. Android 项目目录结构与用户界面的创建
- mysql主从中异步和半同步的区别
- [渝粤教育] 陕西科技大学 食品营养安全与健康 参考 资料
- poj Washing Clothes挺好的一道01背包
- python 判断是字母的多种方法
- python数据分析房价预测_Kaggle入门级赛题:房价预测——数据分析篇
- 马里兰帕克分校计算机科学,马里兰大学帕克分校管理信息系统(MIS)专业详解...
- 微信影视站域名防封、微信影视站公众号域名防封
- 数据迁移——技术选型
- bigquery_为什么BigQuery Omni很重要
- 更改jupyter lab默认启动路径(亲测有效)
- 新版QQ功能录制屏幕、截取任意形状、屏幕文字识别
- kicad原件封装自动生成
- 在web 开发中input file 中调用摄像头
热门文章
- ios 的frame,bound,center
- 「批处理」以服务方式启动批处理
- lof、etf、qdii基金区别
- noip模拟赛 入阵曲
- Cannot open the disk 'D:\win7-ie8\Windows 7 x64.vmdk' or one of the snapshot
- ado显示,删除后刷新重新显示
- Geodatabase - 修改字段别名(Field Alias)
- Debugging with GDB (2) 调用GDB
- VIRT,RES,SHR,虚拟内存和物理内存(转)
- 团队转会名单(22日改)