word 文档提炼编号和标题(类链表树实现)

本文介绍了一种类链表树的数据结构,用于提炼Word文档中的编号和标题。该结构结合了链表和树的特点,实现了高效的数据组织。通过这种结构,可以方便地获取文档的层级信息和内容。
摘要由CSDN通过智能技术生成

说类链表树 这不是标准的树,也不是标准的链表,两者结合的产物。 数据存储结构如图所示:

数据模型类。

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

public final class TitleLinkNode {

    private String name ;			// 标题名称
    private String outlineLvl; 	// 大纲级别
    private String titleNo;		// 编号
    private int treeOrder;		// 树编号
    private TitleLinkNode parent;		// 父标题节点
    private TitleLinkNode previous;   // 前标题节点  previous == null
    private TitleLinkNode next;        // 后标题节点

    private TitleLinkNode head;     // 头节点

    private boolean readHead=false;
    private boolean readNext=false;

    public TitleLinkNode() {
    }

    public TitleLinkNode(String name, String outlineLvl) {
        this(name,outlineLvl,null,-1,null,null,null);
    }

    public TitleLinkNode(String name, String outlineLvl, String titleNo, int treeOrder, TitleLinkNode parent, TitleLinkNode previous, TitleLinkNode next) {
        this.name = name;
        this.outlineLvl = outlineLvl;
        this.titleNo = titleNo;
        this.treeOrder = treeOrder;
        this.parent = parent;
        this.previous = previous;
        this.next = next;
    }

    public boolean isReadHead() {
        return readHead;
    }

    public void setReadHead(boolean readHead) {
        this.readHead = readHead;
    }

    public boolean isReadNext() {
        return readNext;
    }

    public void setReadNext(boolean readNext) {
        this.readNext = readNext;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getOutlineLvl() {
        return outlineLvl;
    }

    public void setOutlineLvl(String outlineLvl) {
        this.outlineLvl = outlineLvl;
    }

    public int getOrder(TitleLinkNode node) {
        int order = 1;
        while((node = node.getPrevious()) != null) {
            order ++;
        }
        return order;
    }


    public String getWholeTitle() {
        return this.getTitleNo() + "." + this.getName();
    }

    public String getTitleNo() {
        List<Integer> orders = new Array
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值