李自成侄孙李来亨抗清:三百年流不尽的英雄之血

李来亨,明末抗清英雄,曾在茅麓山区高举抗清旗帜,历经13年血战。面对清军围困,他坚守最后防线,最终壮烈牺牲。本文回顾了他的抗清生涯,赞颂了他的英勇精神。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  导读:康熙三年(1664年)清政府集中川、楚、秦三省清军和满洲八旗兵,共十万大军在靖西将军穆里玛的指挥下,围攻茅麓山。李来亨奋起迎敌,满洲兵在李来亨的炮火、檑木、滚石的打击下,纷纷坠崖落涧,伤亡惨重,高级指挥官贺布索、穆里玛之子苏尔马均被击毙。清军改变策略,对茅麓山所有出口,严防死守,长期围困,企图困死明军。双方相持数月,李来亨部物资消耗殆尽。李来亨在六月曾组织两次突围,虽拼死奋战,但寡不敌众,无法突出重围。他知道已到最后关头,决心与清王朝不共戴天,与明朝的最后一片河山共存亡。他处死了清方派来招降的叛徒李有实。8月4日,寨内弹尽粮绝。李来亨事先妥善安排了老母的生路,与妻、子等全家人扑向熊熊烈火,壮烈牺牲,谱写了一曲气壮山河的千秋正气歌。

  一个阴雨连绵的秋日,我来到湖北兴山县茅麓山区,凭吊南明坚持抗清斗争20多年,特别是在茅麓山区高举抗清旗帜,顽强杀敌13年,最后壮烈殉国的民族英雄李来亨的抗清遗址。李来亨,原名懋亨,陕西清涧人,生年无考。他是明末农民军领袖李自成族兄之子李过的养子,也就是李自成侄孙。他在少年时即投身农民军,跟随祖父、父亲南征北战,在战火中成长为一名英勇善战的战将。李自成兵败山海关,先后撤出北京、西安,转战到湖北时,李来亨已崭露头角,与李自成麾下名将高一功、郝摇旗、刘体仁、袁宗第齐名,见载于历史文献。

  顺治二年(1645年)五月,李自成在通山九宫山被地方反动武装杀害后,其妻高夫人召集农民军20余万人,实现战略大转变,与南明政权合作,共同反抗带有民族征服性质的满洲贵族集团建立的清王朝。在江南、大西南残山剩水间建立起来的几个南明小朝廷,依然继承了明王朝腐朽的衣钵,奢侈腐化、宦官专权、党争犹酣,正如词曲大家吴梅在散曲中形容的那样,“江山如纸,宫门如市。小朝廷病入膏肓,经不起群雄狂噬。”

  顺治五年(1648年),抗清队伍中的军阀、野心家孙可望悍然围攻由贵州入蜀的高一功、党守素、贺锦、李来亨部,只有李来亨力战得脱,高一功等均被杀,南明抗清大业岌岌可危。“沧海横流,方显英雄本色。”李来亨挺身而出,继续高举抗清大旗,召集所部数万人,经过多次血战,最后在方圆150余华里的茅麓山高山之上、密林深处,建立起抗清根据地。他实行屯田自给、予民休息的政策,关怀山中百姓疾苦,深得民心,都称他“小闯王”。他多次率兵出击,给清军以沉重打击。

这是一个相对复杂的问题,需要使用树的相关知识和Java编程技术实现。下面是一个简单的实现示例,供您参考: ``` import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; public class FamilyTree { // 家族成员类 static class Member { String name; // 姓名 Member father; // 父亲 List<Member> children; // 孩子 public Member(String name) { this.name = name; this.children = new ArrayList<>(); } // 添加孩子 public void addChild(Member child) { children.add(child); child.father = this; } } public static void main(String[] args) { // 初始族谱 Member root = new Member("祖先"); Member m1 = new Member("父亲"); Member m2 = new Member("叔叔"); Member m3 = new Member("伯伯"); Member m4 = new Member("儿子1"); Member m5 = new Member("儿子2"); Member m6 = new Member("侄子1"); Member m7 = new Member("侄子2"); Member m8 = new Member("侄孙1"); Member m9 = new Member("侄孙2"); Member m10 = new Member("孙子1"); Member m11 = new Member("孙子2"); root.addChild(m1); root.addChild(m2); root.addChild(m3); m1.addChild(m4); m1.addChild(m5); m2.addChild(m6); m2.addChild(m7); m6.addChild(m8); m7.addChild(m9); m4.addChild(m10); m5.addChild(m11); // 构建家族成员Map,方便查询 Map<String, Member> members = new HashMap<>(); members.put(root.name, root); members.put(m1.name, m1); members.put(m2.name, m2); members.put(m3.name, m3); members.put(m4.name, m4); members.put(m5.name, m5); members.put(m6.name, m6); members.put(m7.name, m7); members.put(m8.name, m8); members.put(m9.name, m9); members.put(m10.name, m10); members.put(m11.name, m11); // 测试查询和修改功能 Scanner scanner = new Scanner(System.in); while (true) { System.out.println("请输入要查询或修改的家族成员姓名:"); String name = scanner.nextLine(); Member member = members.get(name); if (member == null) { System.out.println("找不到该成员!"); continue; } System.out.println("该成员的父亲是:" + (member.father == null ? "无" : member.father.name)); System.out.println("该成员的孩子有:"); for (Member child : member.children) { System.out.println(child.name); } System.out.println("请选择要进行的操作:1-新增孩子,2-退出"); int option = scanner.nextInt(); scanner.nextLine(); if (option == 1) { System.out.println("请输入要新增孩子的姓名:"); String childName = scanner.nextLine(); Member child = new Member(childName); member.addChild(child); members.put(childName, child); System.out.println("新增孩子成功!"); } else if (option == 2) { break; } else { System.out.println("无效的操作!"); } } } } ``` 在这个示例中,我们使用了树的数据结构来存储家族成员的族谱,每个成员都是一个节点,有父亲和孩子。构建家族成员Map可以方便地查询和修改家族成员。在主函数中,我们先构建了一个初始的家族成员,然后通过Scanner从键盘输入要查询或修改的成员姓名,查询该成员的父亲和孩子,并提供了新增孩子的功能,直到用户选择退出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值