小程序--删除数组中的一个对象后,对应的节点怎么删除?

一、删除数组中的一个对象后,对应的节点怎么删除?
删除后,需要页面更新,需要setData一下

if(cnumber==0){      
   this.data.orderList.splice(cindex,1); //当减为0的时候删除该项内容  
   this.setData({        
    orderList:this.data.orderList      
   })    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ext2/3,扩展文件系统,常用于Linux操作系统。是很多Linux发行版的默认文件系统。 Linux ext2/ext3文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。 索引节点(inode)是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘的位置等信息。 一个文件系统维护了一个索引节点数组(GroupDesc),每个文件或目录都与索引节点数组的唯一一个元素对应。 系统给每个索引节点分配了一个号码,也就是该节点数组的索引号,称为索引节点号。 linux文件系统将文件索引节点号和文件名同时保存在目录。所以,目录只是将文件的名称和 它的索引节点号结合在一起的一张表,目录每一对文件名称和索引节点号称为一个连接。 对于一个文件 来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对应。因此,在磁盘 上的同一个文件可以通过不同的路径去访问它。 本程序是一个ext2/ext3文件系统查看器(ext4暂不支持).可以打开镜像文件及硬盘设备文件查看具体的 文件系统结构信息,如超级块,块组信息,文件inode,目录信息,文件信息,提取文件内容等。本人写这个程序就是 为了学习一下ext2/3,也希望通过本程序能让读者了解ext2/3文件系统结构. 具体使用方法请看readme
好的,根据您的要求,我编写了一个可运行的Java程序,实现了构造哈夫曼树、产生哈夫曼编码、求带权路径长度的功能,如下: ``` import java.util.*; // 哈夫曼树节点类 class HuffmanNode { char ch; // 字符 int weight; // 权值 HuffmanNode left, right; // 左子节点和右子节点 public HuffmanNode(char ch, int weight) { this.ch = ch; this.weight = weight; this.left = null; this.right = null; } } public class HuffmanTree { private HuffmanNode root; // 哈夫曼树根节点 private Map<Character, String> huffmanCode; // 存储哈夫曼编码的映射表 // 构造函数 public HuffmanTree(char[] charArray, int[] weightArray) { this.root = buildHuffmanTree(charArray, weightArray); this.huffmanCode = new HashMap<>(); generateHuffmanCode(root, ""); } // 构造哈夫曼树 private HuffmanNode buildHuffmanTree(char[] charArray, int[] weightArray) { // 构建节点列表 List<HuffmanNode> nodeList = new ArrayList<>(); for (int i = 0; i < charArray.length; i++) { HuffmanNode node = new HuffmanNode(charArray[i], weightArray[i]); nodeList.add(node); } // 构建哈夫曼树 while (nodeList.size() > 1) { // 找到最小的两个节点 int min1 = 0; int min2 = 1; if (nodeList.get(min1).weight > nodeList.get(min2).weight) { int tmp = min1; min1 = min2; min2 = tmp; } for (int i = 2; i < nodeList.size(); i++) { if (nodeList.get(i).weight < nodeList.get(min1).weight) { min2 = min1; min1 = i; } else if (nodeList.get(i).weight < nodeList.get(min2).weight) { min2 = i; } } // 合并最小的两个节点 HuffmanNode parent = new HuffmanNode('\0', nodeList.get(min1).weight + nodeList.get(min2).weight); parent.left = nodeList.get(min1); parent.right = nodeList.get(min2); nodeList.remove(min1); nodeList.remove(min2 - 1); nodeList.add(parent); } // 返回哈夫曼树根节点 return nodeList.get(0); } // 生成哈夫曼编码 private void generateHuffmanCode(HuffmanNode node, String code) { if (node == null) { return; } if (node.left == null && node.right == null) { // 叶子节点 huffmanCode.put(node.ch, code); } generateHuffmanCode(node.left, code + "0"); // 左子树编码加0 generateHuffmanCode(node.right, code + "1"); // 右子树编码加1 } // 获取哈夫曼编码 public String getHuffmanCode(char ch) { return huffmanCode.get(ch); } // 获取带权路径长度 public int getWeightedPathLength() { return getWeightedPathLength(root, 0); } // 获取带权路径长度(递归) private int getWeightedPathLength(HuffmanNode node, int depth) { if (node == null) { return 0; } if (node.left == null && node.right == null) { // 叶子节点 return node.weight * depth; } return getWeightedPathLength(node.left, depth + 1) + getWeightedPathLength(node.right, depth + 1); } // 测试代码 public static void main(String[] args) { char[] charArray = {'A', 'B', 'C', 'D', 'E', 'F'}; int[] weightArray = {12, 4, 6, 8, 15, 7}; HuffmanTree huffmanTree = new HuffmanTree(charArray, weightArray); System.out.println("字符\t权值\t哈夫曼编码"); for (char ch : charArray) { System.out.println(ch + "\t" + weightArray[ch - 'A'] + "\t" + huffmanTree.getHuffmanCode(ch)); } System.out.println("带权路径长度:" + huffmanTree.getWeightedPathLength()); } } ``` 这个程序可以通过传入字符数组和权值数组来构造哈夫曼树,并生成所有字符的哈夫曼编码和带权路径长度。在测试代码,我使用了题目的例子进行测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值