美文网首页王道408数据结构
线性表两种建表方法

线性表两种建表方法

作者: sakura579 | 来源:发表于2020-08-05 15:46 被阅读0次

顺序表建表



数组作为顺序表的载体
length描述顺序表的长度

#include <iostream>
using namespace std;

int maxSize=10;
int length;
int createList(int A[],int &length)
{
    cin>>length;
    if(length>maxSize)
        return 0;
    for(int i=0;i<length;i++)
        cin>>A[i];
    return 1;
} 

int main(){
    int A[10];
    int flag = createList(A,length);
    for(int i=0;i<length;i++){
        cout<<A[i]<<endl;
    }
    cout<<"flag="<<flag;
}

单链表建表
就是一系列插入操作
为了规范操作 一般在两个位置进行插入
在表的头部 和表的尾部
因此 有头插法建表法和尾插法建表法

尾插法建表法 R是尾部的意思(不知道哪个单词的首字母)
带头结点的单链表

建单链表的数据来源问题 就是结点data域的值
一种是传入一个数组 用数组的值设置链表中每个结点中data域的值
另一种是通过键盘输入设置链表中每个结点中data域的值


p指针是接收新结点的指针
r指针是始终指向当前尾部结点的指针

你每次为一个单链表申请结点空间的时候
把它的next指针设置为null是一个非常好的习惯
可能在很多情况下 避免错误


这句话删掉 代码是没有问题的
这里是链表尾部插入结点
为了方便记忆 写成这个样子
统一成在链表中部插入结点的操作
形式上更统一些

带头结点的单链表(H Head )
头插法建表法

通过这两种方法 对于同一组输入数据
你会得到两个相反数据的链表

这个while循环 用来检查是否有重复的数据
while 前面 p = head->next 是初始化p
使p指向第一个数据结点 再进入while 扫描整个链表

没有重复的结点
则while循环执行到最后 p为null指针
进入if语句块 建立新结点 保存这个字符

有重复结点 while循环break跳出 p不为null
不会进入if语句块

相关文章

  • 线性表两种建表方法

    顺序表建表 数组作为顺序表的载体length描述顺序表的长度 单链表建表就是一系列插入操作为了规范操作 一般在两个...

  • 数据结构-线性表

    线性表的定义 线性表:零个或多个数据元素的有限序列 线性表的顺序存储结构 顺序存储结构的定义 线性表的两种物理结构...

  • LeetCode题集整理- 栈、队列、堆

    1、预备知识点 栈(Stack)和队列(Queue)是两种操作受限的线性表。 (线性表:线性表是一种线性结构,它是...

  • 数据结构和算法之一——线性表_2_顺序结构存储

    线性表存储结构分类线性表有两种物理存储结构:1)顺序存储结构;2)链式存储结构 顺序存储结构2.1定义:线性表的顺...

  • 数据结构-顺序线性表

    线性表的定义: 数据类型: 线性表有两种物理存储结构(在内存中找个初始地址): 线性表的顺序存储结构 特点: 优缺...

  • 数据结构之链表(linked-list)

    线性表、数组、链表 线性表:线性表中存储的每个数据称为一个元素,各个元素及其索引是一一对应的关系。线性表有两种存储...

  • hash表--散列表

    大厂之路的第五篇 HashMap(散列表) 前面几篇我们介绍了两种线性表:顺序表和链表。这两种线性表它们各有优缺...

  • 线性表的链式存储--单链表

    Java之线性表的链式存储——单链表 我们都知道,线性表的存储结构分为两种,顺序存储结构和链式存储结构,线性表的分...

  • 数据结构基础

    线性表 线性表是按顺序存储数据时常用的一种数据结构。实现线性表的方式有两种: 数组 ArrayList 数组是大小...

  • 数据结构之线性表

    线性表 线性表:零个或多个数据元素的有限序列线性表的两种存储结构:顺序存储&链式存储 单链表结构&顺序存储结构对比...

网友评论

    本文标题:线性表两种建表方法

    本文链接:https://www.haomeiwen.com/subject/jqynrktx.html