单链表的创建和输出(python与C++实现)

样例模型是一个长度为6的数组[1,2,3,4,5,6]

C++:

前插法:前插法是通过将新结点逐个插入链表的头部(头结点之后)来创建链表,每次申请一个新结点,读入相应的数据元素值,然后将新结点插入到头结点之后

算法步骤:

1,创建一个只有头结点的空链表.

2,根据待创建链表包括的元素个数,循环n次执行以下操作:

                生成一个新结点*p;

                输入元素值赋给新结点*p的数据域;

                将新结点*p插入到头结点之后。

因为前插法按照逆位序输入数据,所以输入应为6 5 4 3 2 1,输入数据和线性表中的逻辑顺序是相反的

#include<iostream>
#include<stdio.h>
#include<malloc.h>
using namespace std;
typedef struct LinkList
{
int data;
struct LinkList *next;
}LinkNode;

int main()
{
LinkNode *L=new LinkNode;
L->next=NULL;
for(int i=0;i<6;i++)
{
    LinkList *p=new LinkNode;
    cin>>p->data;
    p->next=L->next;
    L->next=p;
}
LinkNode *q=L;
while(q)
{
    q=q->next;
    cout<<q->data<<' ';
}
}

尾插法:尾插法是通过将新结点逐个插入到链表的尾部来创建链表。同前插法一样,每次申请一个新结点,读入相应的数据元素值。不同的是,为了使新结点能够插入到表尾,需要增加一个尾指针r指向链表的尾节点。

算法步骤:

1,创建一个只有头结点的空链表。

2,尾指针r初始化,指向头结点。

3,根据创建链表包括的元素个数n,循环n次执行以下操作:

                  生成一个新结点*p;

                  输入元素值赋给新结点*p的数据域;

                  将新结点*p插入到尾结点*r之后;

                  尾指针r指向新的尾结点*p。

#include<iostream>
#include<stdio.h>
#include<malloc.h>
using namespace std;
typedef struct LinkList
{
int data;
struct LinkList *next;
}LinkNode;

int main()
{
LinkNode *L=new LinkNode;
L->next=NULL;
for(int i=0;i<6;i++)
{
    LinkList *p=new LinkNode;
    cin>>p->data;
    p->next=L->next;
    L->next=p;
}
LinkNode *q=L;
while(q)
{
    q=q->next;
    cout<<q->data<<' ';
}
}

Python:

输出一个由两个列表组成的单链表:

把链表中的每一个元素存储的值存储在一个列表里,再把它们的指针存储在另一个列表里。

ListValue = [1,5,6,2,4,3]
ListPointer = [3,2,-1,5,1,4]#两个数组中,相同下标的元素组成链表的一个元素,两个列表合起来成为了一个链表
next = 0

while next != -1:
    print(ListValue[next],end = ' ')
    next = ListPointer[next]

输出一个列表套列表组成的单链表:

List = [[1,3],[5,2],[6,-1],[2,5],[4,1],[3,4]]#大数组中的每个小数组都是链表中的一个元素,每个小数组中的第一个数是这个元素存储的值,第二个数是指向下一个元素的指针。调用大数组List中第m个小数组中第n个元素可以这样写:List[m-1][n-1](下标从0开始)
value = 0 
pointer = 1
next = 0
print(List[next][value],end = ' ')
next = List[next][pointer]
while next != -1:
    print(List[next][value],end = ' ')
    next = List[next][pointer]


 

发布了14 篇原创文章 · 获赞 8 · 访问量 1612

猜你喜欢

转载自blog.csdn.net/Zhongtongyi/article/details/95180176
今日推荐