加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[日常] 算法-单链表的创建

发布时间:2020-12-16 19:36:43 所属栏目:大数据 来源:网络整理
导读:1. 先创建一个头结点,不需要有数据域,头结点的next指向null 2.循环中创建结点,把头结点的next赋值给 新结点的next,相当于新结点的next指向了(头结点next所指向的) 3.把新结点赋值给头结点的next ,相当于头结点的next指向了新结点,这样就串起来了 4.

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

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

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

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

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

c语言版:

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

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

$list=new Node();
$list->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";
}

  

  

  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读