用JAVA实现顺序表

java之顺序表的创建 顺序表是用一段。 阅读详情

顺序表演示

package date;

import java.util.Scanner;

//顺序表数据元素类Date
class Date {            // 模拟一个班级的学生记录
    String key;             
    String name;
    int age;
}

class SLType {

    static final int MAXLEN = 100;              //定义顺序表长度
    Date[] listData = new Date[MAXLEN+1];       //废弃0索引,从1开始
    int listLen;                                 // 顺序表已存结点的数量

    //初始化顺序表
    void SLInit(SLType sl) {    
        sl.listLen = 0;
    }

    //计算顺序表长度
    int SLLength(SLType sl) {
        return (sl.listLen);
    }


    // 插入节点,返回0表示插入失败,返回1表示插入成功
    int SLInsert(SLType SL, int n, Date data) {
        int i;
        if (SL.listLen >= MAXLEN) {
            System.out.println("顺序表已满,不能插入节点");
            return 0;
        }

        if (n < 1 || n > SL.listLen - 1) {
            System.out.println("插入序号有误,不能插入节点");
            return 0;
        }

        for (i = SL.listLen; i >= n; i--) {
            SL.listData[i + 1] = SL.listData[i];
        }
        SL.listData[n] = data;
        SL.listLen++;
        return 1;

    }

    // 追加节点(插入节点的一种特殊情况,分离出来而已)
    int SLAdd(SLType SL, Date data) {
        if (SL.listLen >= MAXLEN) {
            System.out.println("顺序表已满,不能插入节点");
            return 0;
        }
        SL.listData[++SL.listLen] = data;
        return 1;
    }

    // 删除节点
    int SLDelete(SLType SL, int n) {
        int i;
        if (n < 1 || n > SL.listLen) {
            System.out.println("序号输入有误,不能删除节点");
            return 0;
        }

        for (i = n; i <SL.listLen; i++) {
            SL.listData[i] = SL.listData[i + 1];
        }
        SL.listLen--;//n=SL.listLen时直接执行此处
        return 1;
    }

    // 查找节点
    Date SLFindByNum(SLType SL, int n) {
        if (n < 1 || n > SL.listLen) {
            System.out.println("序号输入有误,不能插入节点");
            return null;
        }
        return SL.listData[n];
    }

    // 按照关键字查找节点
    int SLFindByCont(SLType SL, String key) {
        int i;
        for (i = 1; i <= SL.listLen; i++) {
            if (SL.listData[i].key.compareTo(key) == 0) {
                return i;
            }
        }
        return 0;
    }

    // 显示所有节点
    int SLAll(SLType SL) {
        int i;
        for (i = 1; i <= SL.listLen; i++) {
            System.out.println(SL.listData[i].key + "#" + SL.listData[i].name + "#" + SL.listData[i].age);
        }
        return 0;
    }

}

public class Shunxu {
    public static void main(String[] args) {
        int i;
        SLType SL = new SLType(); // 定义顺序表变量
        Date pdata; // 定义结点保存指针变量
        String key; // 保存关键字

        System.out.print("顺序表操作演示!\n");

        SL.SLInit(SL); // 初始化顺序表
        System.out.print("初始化顺序表完成!\n");

        Scanner input = new Scanner(System.in);

        do {        // 循环添加结点数据
            System.out.print("输入添加的结点(学号 姓名 年龄):");
            Date data = new Date();
            data.key = input.next();
            data.name = input.next();
            data.age = input.nextInt();
            SL.SLAdd(SL, data);
            if (data.age == 0) // 设置退出循环的条件,若年龄为0退出死循环
            {
                break; 
            }
        } while (true);



        System.out.print("\n顺序表中的结点顺序为:\n");
        SL.SLAll(SL); // 显示所有结点数据


        System.out.print("\n要取出结点的序号:");
        i = input.nextInt(); // 输入结占点序号
        pdata = SL.SLFindByNum(SL, i); // 按序号查找结点
        if (pdata != null) // 若返回的结点指针不为NULL
        {
            System.out.printf("第%d个结点为:(%s,%s,%d)\n", i, pdata.key, pdata.name, pdata.age);
        }


        System.out.print("\n要查找结点的关键字:");
        key = input.next(); // 输入关键字
        i = SL.SLFindByCont(SL, key); // 按关键字查找 ,返回结点序号
        pdata = SL.SLFindByNum(SL, i); // 按序号查询,返回结点指针
        if (pdata != null) // 若结点指针不为NULL
        {
            System.out.printf("第%d个结点为:(%s,%s,%d)\n", i, pdata.key, pdata.name, pdata.age);
        }


        System.out.print("\n删除结点的序号:");
        i = input.nextInt(); // 输入结占点序号
        int k = SL.SLDelete(SL, i); // 按序号查找结点
        if (k==1) // 若返回的结点指针不为NULL
        {
            System.out.printf("删除成功");
        }



        System.out.print("\n删除后顺序表中的结点顺序为:\n");
        SL.SLAll(SL); // 显示所有结点数据

    }

}
顺序表操作演示!
初始化顺序表完成!
输入添加的结点(学号 姓名 年龄):01 huge 33
输入添加的结点(学号 姓名 年龄):02 allen 34
输入添加的结点(学号 姓名 年龄):03 tangyan 30
输入添加的结点(学号 姓名 年龄):04 shiliu 28
输入添加的结点(学号 姓名 年龄):0 0 0

顺序表中的结点顺序为:
01#huge#33
02#allen#34
03#tangyan#30
04#shiliu#28
0#0#0

要取出结点的序号:5
第5个结点为:(0,0,0)

要查找结点的关键字:03
第3个结点为:(03,tangyan,30)

删除结点的序号:4
删除成功
删除后顺序表中的结点顺序为:
01#huge#33
02#allen#34
03#tangyan#30
0#0#0
Java实现顺序表 Java实现顺序表及其实现思路 Java实现顺序表存储 方便自己学习使用 线性表的顺序存储结构示意图 顺序表插入操作图 例如 Java具体实现 package cn.chen.list; /** * 建立顺序表 * @author 等风来 * */ public class inSert { //实际存储的元素个数 private int n; //定义一个数组,用来建立顺序... 阅读详情

相关推荐

用Java实现顺序表

在Java中,java.util.ArrayList是顺序表的最佳实践,它提供了强大的功能和优化的性能。通过自己实现MyArrayList,我们不仅加深了对数据结构原理的理解,也为后续学习更复杂的数据结构打下了坚实的基础。

Heidiiih的博客 978

Java顺序表

Java顺序表

x2656271356的博客 1099

JMeter脚本录制-快速上手篇

有的项目应用场景下,压测时,需要考虑带宽因素,压测不只是压测接口,静态资源也要一起压测。一般来说,静态资源比较多,如果一个个手工去写请求,是比较繁琐的,此时,可以使用Jmeter的脚本录制功能。 步骤1,创建脚本录制模版。 JMeter菜单:文件>模版,下拉选择到Recording,点击“Create”按钮; 填写录制参数: hostToRecord:填写要录制的主机域名,例如,我们这里填入:www.baidu.com schemeToRecord:填写要录制的模式,例如,htt...

软件测试大叔 5734

[Java]数据结构---顺序表

线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。【说明】ArrayList是以泛型方式实现的,使用时必须要先实例化。

Crystal_learner的博客 1320

Mplus实战:随机截距交叉滞后模型(RI-CLPM)在心理学纵向研究中的进阶应用

本文深入探讨了随机截距交叉滞后模型(RI-CLPM)在心理学纵向研究中的进阶应用,通过Mplus实战演示了模型设定、结果解读及进阶建模策略。RI-CLPM能有效区分个体间差异和个体内变化,适用于追踪青少年手机使用与抑郁症状等研究。文章还提供了样本量规划、模型比较和结果可视化等实用技巧,助力研究者避免常见陷阱。

weixin_29220405的博客 371

Avellaneda & Stoikov’s market-making strategy 工程化处理

前2篇文章详细介绍了AS存货模型的做市策略,这次对于这些公式里面一些希腊字母的取值是如何计算的,如何做工程化并应用到生产环境中做一些说明。这个里面有一些重要参数:很直观,可以直接取值的有:s = current market mid price (中间价,也就是【最佳卖价+最佳买价】/2)q = quantity of assets in inventory of base asset (也就是买入多少价值的股票数量)

weixin_42480337的博客 7070

Java 实现顺序表的基本操作

顺序表 静态顺序表:使用定长数组存储。 动态顺序表:使用动态开辟的数组存储。 接口 package com.github.sqlist; public interface ISequence { // 在 pos 位置插入 val boolean add(int pos, Object data); // 查找关键字 key 找到返回 key 的下表,没有返回 -1 ...

近未来 7448

音视频从入门到精通——指数哥伦布码原理

在计算机中,一般数字的编码都为二进制,但是由于以相等长度来记录不同数字,因此会出现很多的。

mirana的专栏 1383

【顺序表的模拟实现Java】

顺序表的增删查改等操作的模拟实现

2401_82641862的博客 1303

Rust 与 C/C++:Rust 比 C/C++ 更好还是只是“技能问题”?

对于许多嵌入式系统开发人员而言,的崛起似乎掀起了一股不小的浪潮,特别是在相较于传统的语言,Rust的“内存安全”优势让人眼前一亮。然而,是否可以将Rust作为C/C++的替代品?或者说,Rust是否真的比C/C++更好,抑或它只是一个“技能问题”呢?在嵌入式开发的领域,我观察到,尽管Rust在一些高性能、内存安全敏感的场景中受到了广泛推崇,但它在实际应用中的普及度,特别是在嵌入式领域,依然有限。今天,我会从多个角度探讨这个问题,并且分享一些对于Rust、C/C++以及嵌入式系统开发的个人见解。

qq_63315166的博客 1300

【数学建模】编程手学习路线

在学习过程中,建议注重理论与实践相结合,多进行实例练习和项目实践,以巩固所学知识并提升实际应用能力。同时,保持对新技术和新方法的关注和学习,不断提升自己的专业素养和竞争力。NumPy、Pandas、Matplotlib和Seaborn等库是数据处理和可视化的重要工具。掌握常用机器学习算法的原理和应用,如决策树、支持向量机、神经网络等。学习内容包括微积分、线性方程组、矩阵运算、概率分布、统计推断等。学习内容包括基本语法、函数和模块、面向对象编程、文件操作等。深入了解优化理论和方法,如梯度下降法、牛顿法等。

2301_79586491的博客 2962

【DS】Java实现顺序表

使用Java语言实现线性表当中的顺序表

trong_ 的烂笔头 1591

树莓派4B学习笔记一

树莓派4b烧录Ubuntu20.04&&配置Ubuntu桌面

m0_55202222的博客 3643

java顺序表_Java实现顺序表

一、分析什么是顺序表?顺序表是指用一组地址连续的存储单元依次存储各个元素,使得在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中的线性表。一个标准的顺序表需要实现以下基本操作:1、初始化顺序表2、销毁顺序表3、清空顺序表4、检测顺序表是否为空5、返回顺序表的元素个数6、返回顺序表中指定位置元素的值7、返回顺序表中第一个与指定值相同的元素的位置8、返回指定元素的直接前驱9、返回指定元素的直接后继1...

weixin_30702441的博客 1087

Windows VHD的新玩法——设置任意挂载点

vhd 挂载隐藏的虚拟分区 详细过程 分别使用CreateVirtualDisk和OpenVirtalDisk来创建和打开虚拟磁盘文件。 使用AttachVirtualDisk,必须具有管理员权限才能成功执行此步骤。 初始化设备(延时Sleep),获取附加 VHD 的 UNC 路径:\\.\PhysicalDrive# 。 使用FindFirstVolume/FindNextVolume枚举已安装的卷以查找虚拟磁盘上的卷。 使用SetVolumeMountPoint将卷挂载到文件夹或者设

圣三一 2588

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java 顺序表的实现_顺序表的简单实现(Java)

采用Java实现数据结构中的顺序表/***Apr 15, 2013*Copyright(c)JackWang*All rights reserve*@Author JackWang*/package com.example.list;/*** 顺序表的实现* @author Administrator**/public class MySeqList {private Object[] obj; ...

weixin_36334262的博客 680

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java实现的顺序表

java实现的顺序表 (1)List接口 public interface List<E> { public int getSize(); public boolean isEmpty(); public void add(int index,E e); public void addFirst(E e); public void addLast(E e); p...

Hello什么来着? 292

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java 顺序表的实现_JAVA实现顺序表

JAVA实现顺序表花了十来分钟帮同学写了一个顺序表,顺序表是线性表中最简单的,最容易实现的。顺序表中元素在逻辑上的相邻,在物理上也是相邻的。顺序表可以用数组来实现。下面是实现/*** 顺序表的储存结构:在逻辑上相邻的元素,他们在物理上也是相邻的 所以可以用数组来实现** @author ZDX**/public class SqList {// 设置顺序表的最大最大长度private final ...

weixin_39605521的博客 326

【数据结构 1】顺序表及其Java实现

顺序表一、什么是数据结构?二、线性数据结构三、顺序表及其Java实现3.1 什么是顺序表?3.2 顺序表的实现(固定容量版)3.2.1 API设计3.2.2 代码3.3 顺序表的实现(容量可变版)3.3.1 容量伸缩方案3.3.2 代码3.4 顺序表的时间复杂度3.5 补充 一、什么是数据结构? 数据结构是为实现对计算机数据有效使用的各种数据组织形式,服务于各类计算机操作。 不同的数据结构具有各自对应的适用场景,旨在降低各种算法计算的时间与空间复杂度,达到最佳的任务执行效率。 如下图所示,常见的

Java技术工坊 650

Java实现线性表之顺序表

顺序表的Java实现 线性表 线性表是一种相当简单灵活的数据结构,是我们学习数据结构的基础。线性表中的元素存在一对一的关系。例如,将学生按学号进行先后顺序的排列。 线性表可以用顺序存储和链式存储,顺序存储适合进行多次访问,而链式存储适合多次插入和删除。 顺序表 顺序储存结构就是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。 数据元素 新建一个类来封...

qq_42200733的博客 1182

java使用数组实现顺序表

使用java语言实现数据结构中的顺序表,此数据结构可类比ArrayList。

初心不忘、始终方得 2912
上一篇: Java基础知识点整理Day_04
下一篇: 栈结构、队列
詹詹自喜KING
博客等级 码龄11年 40粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值