博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[日常] 算法-单链表的创建
阅读量:5748 次
发布时间:2019-06-18

本文共 2323 字,大约阅读时间需要 7 分钟。

1. 先创建一个头结点,不需要有数据域,头结点的next指向null

2.循环中创建结点,把头结点的next赋值给 新结点的next,相当于新结点的next指向了(头结点next所指向的)

3.把新结点赋值给头结点的next ,相当于头结点的next指向了新结点,这样就串起来了

4.头结点就相当于整个链表

5.循环遍历的时候,头结点没有数据可以直接跳过,把结点的next赋值给结点,相当于向下移动了一项

c语言版:

#include 
#include
#include
typedef struct Node{ char* data; struct Node* next;} Node;typedef Node* LinkList;int main(){ //1.创建一个链表 LinkList head=(LinkList)malloc(sizeof(Node));//分配内存 //malloc(sizeof(Node))是给头结点分配内存,head是指向头结点的指针叫头指针 head->next=NULL;//数据域加指针域叫头结点 LinkList a1=(LinkList)malloc(sizeof(Node)); a1->data="aaa"; a1->next=NULL; head->next=a1; //a1是指向第一个结点的指针,赋值给head->next,就相当于head->next指向了a1 LinkList a2=(LinkList)malloc(sizeof(Node)); a2->data="bbb"; a2->next=NULL; a1->next=a2; //a2是指向第二个结点的指针,赋值给a1->next,就相当于a1->next指向了a2 //2.循环创建一个链表 LinkList list=(LinkList)malloc(sizeof(Node)); list->next=NULL; 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; node->next=list->next; list->next=node; } //遍历 int j=0; while(list->next){ list=list->next; printf("%s \n",list->data); j++; } return 0;}

go语言版:

package mainimport(        "fmt")type Node struct{        data string        next *Node}func main(){        list:=new(Node)        list.next=nil        var node *Node        for i:=0;i<10;i++{                node=new(Node)                node.data="aaa"+fmt.Sprintf("%d",i)                node.next=list.next                list.next=node        }           //遍历        for{                list=list.next                fmt.Println(list.data)                if list.next==nil{                        break                }           }   }

php语言版:

next=null;for($i=0;$i<10;$i++){ $node=new Node(); $node->data="aaa{$i}"; $node->next=$list->next; $list->next=$node;}//遍历while($list->next){ $list=$list->next; echo $list->data."\n";}

  

  

  

转载于:https://www.cnblogs.com/taoshihan/p/9164255.html

你可能感兴趣的文章
《交互式程序设计 第2版》一1.4 艺术与交互
查看>>
携手共建大数据学院
查看>>
《深入理解大数据:大数据处理与编程实践》一一2.3 集群分布式Hadoop系统安装基本步骤...
查看>>
《交互式程序设计 第2版》一3.7 将外部数据载入Processing
查看>>
LoadRunner中Action的迭代次数的设置和运行场景中设置
查看>>
【转载】actor 模型的优缺点分析介绍
查看>>
敏捷开发的一些思考--故事拆分(同发csdn)
查看>>
jquery图片时钟
查看>>
把插入的数据自动备份到另一个表中 ~ 语境:本地和服务器自动同步
查看>>
Innodb:如何计算异步/同步刷脏及checkpoint的临界范围
查看>>
如何把命令行下的执行结果保存(二)
查看>>
Lucene5学习之使用Ansj-seg分词器
查看>>
Office无法卸载的最简单解决方法
查看>>
Objective-C之Protocol
查看>>
[翻译] Haneke(处理图片缓存问题)
查看>>
关于问题查询的见解
查看>>
Silverlight实用窍门系列:47.Silverlight中元素到元素的绑定,以及ObservableCollection和List的使用区别...
查看>>
Hibernage错误:Could not open Hibernate Session for transaction
查看>>
从头开始敲代码之《从BaseApplication/Activity开始(二)》
查看>>
android5.0自带兼容控件__SwipeRefreshLayout
查看>>