单链表定义与创建

tech2022-12-11  54

单链表定义与创建

C++版本代码Java版本Python版本

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的;链表是一系列数据元素,通过链接连接在一起。每个数据元素都以指针的形式包含到另一个数据元素的连接。每一个链表都包含多个节点,节点又包含两个部分,一个是数据域(储存节点含有的信息),一个是引用域(储存下一个节点或者上一个节点的地址);链表缺点: 获取数据麻烦,需要遍历查找,比数组慢,优点:插入、删除操作方便。

C++版本代码

C++使用结构体来实现节点的定义

#include<iostream> using namespace std; struct ListNode { //节点定义 int val; struct ListNode *next; // ListNode(int x) : // val(x), next(NULL) { // } }; void createList(ListNode* pHead){ ListNode*p = pHead; //将pHead的地址赋予一个类的新指针p,此时p的地址与pHead的地址一样 for(int i =1; i <10; ++i){ ListNode* pNewNode = new ListNode; //创建一个类的新指针pNewNode,作为中间过程为以后存放新节点提供过渡 pNewNode -> val = i; pNewNode -> next = NULL; //为新节点分配内存,初始化类成员 p -> next = pNewNode; //上一结点指向这个新建立的结点 p = pNewNode; //p节点指向这个新结点 } } int main(){ void createList(ListNode* pHead); ListNode *head = NULL; //定义了一个ListNode结构类head的指针,指向链表的第一个节点,并初始化; head = new ListNode; head -> val = 0; head -> next = NULL; //为head分配内存,初始化类成员 createList(head); }

Java版本

使用类定义节点

package lianbiao; public class Node { //定义节点 protected Node next; protected int data; public Node(int data) { //构造函数传参 this.data = data; this.next = null; } public Node() {} public void add(int newdata) { Node newNode = new Node(newdata); //创建新节点 if(this.next == null) { this.next = newNode; //单前链表尾null,链接至链表尾 }else { this.next.add(newdata); //空链表则 创建 } } public void print() { System.out.println(this.data + "-->"); if(this.next != null) { this.next.print(); } } public static void main(String[] args) { Node ListNode = new Node(1); ListNode .add(2); ListNode .add(3); ListNode .print(); } }

Python版本

最新回复(0)