C语言尾插法创建学生单链表,[日常] 算法-单链表的创建-尾插法

搜索热词

1.创建头结点,头结点的next指向null

2.把头结点赋值给一个中间变量

3.循环中创建结点,中间变量的next指向新结点

4.新结点覆盖中间变量

c语言版:

Highlighter">

#include typedef struct Node{

chardata;

struct Node next;

} Node;

typedef NodeLinkList;

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语言版:

Highlighter">

import(

"fmt"

)

type Node struct{

data string

next Node

}

type LinkListNode

func main(){

list:=new(Node)

list.next=nil

var node LinkList

temp:=list

for i:=0;i<10;i++{

node=new(Node)

node.data="aaa"+fmt.Sprintf("%d",i)

node.next=nil

temp.next=node

temp=node

}

//遍历

for{

list=list.next

fmt.Println(list.data)

if list.next==nil{

break

}

}

}

PHP语言版:

Highlighter">

PHP;gutter:true;">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";

}

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值