客家人为什么叫客家人?
关于客家人的来源,一般认为是由北方人南迁而来。 历史 上“五胡乱中华”、“安史之乱”等战乱让许多平民百姓流离失所,一部分难民逃离到南方,所以客家人一般分布在江西、福建、广东、台湾等地。当然,现在客家人在海外也多有分布。
客家人说白了就是“外人”的意思,因为只有土著才是自己人,所以他们到达南方以后,过得非常谨慎。比如著名的福建土楼就是客家人的杰作,土楼可以住人,也可以当防御的城堡,这正体现了他们在作为外来人的艰难处境。
客家人处于不断的迁移之中,有时候难免妻离子散,所以他们的祖宗观念特别强,注重家族制度,家谱记载的特别详细并且保存较好。比如江西姓张的客家人和福建姓张的客家人,通过族谱可以联系起来,有可能祖上是一家,所以我们经常可以看到南方某地家族宴摆几百桌的情况。
客家人由于生活处境艰难,他们很勤劳,也敢于创新,因而他们思维敏捷,在商业、政治、文化领域都取得了很大成功。比如革命先驱孙中山、泰国总理英拉、新加坡***李光耀及李显龙等等,这些都是客家人。
客家人的方言很难听懂,但据研究,客家方言正是中国古代的官话,客家人将中原官话带到南方,并且一直传承至今,所以有些古诗词用客家话读起来韵律更加和谐。因此,客家方言也为古代汉语的研究,提供了很大帮助。
总之,客家人是由于 历史 原因而产生的一群人,不管走到那里,他们都是华夏子孙。
客家人,称“客家”的 历史 并不长,大约始于清代。
客家人,是强悍而传统的,具有相当强的迁徙李,但相对于客家人聚居地-闽粤赣边区周边各民系,客家人实在太“年轻”,这种性格很容易显得格格不入。
一,客家人的聚居地:“四面楚歌”
客家人的北边,是号称“江南好地方”的江右人士(江西人),最早溯源至汉代;其东边是衣冠南渡的八闽子弟,始于晋,成于唐;其南边则是“海滨邹鲁”的潮州人,始建于秦汉,开化于唐,盛于宋;而其西边是广袤的山地,西偏南则是秦汉一脉相承的岭南。
这强大的四邻,在千百年的演变过程,一直坚守着汉文化南渐的任务,也自我渲染“中原文化分支”的色彩。
本来四个分支在自我发展过程中,因有闽粤赣山区作为缓冲,也算自得其乐,一直是相处融洽,但不知从何时起,闽粤赣出现了这么一批新新人类,谁也不知道他们来自哪里,是什么属性。
二,搅局者:闽粤赣边区开始出现混乱
江右人在古代科举文化最昌盛,文人名士辈出,他们有着广袤的私有土地和数不尽的钱财,在封建剥削之下,无数佃户只好铤而走险走入大山进入赣南自行谋生,加上因战争及躲避赋税辗转而来的流民,这些人成了当时赣南的“客户”,他们没有户籍,没有科考的名额,只好躲在深山老林里自求多福、自生自灭。
因此赣州成了客家人的摇篮和最初始的庇护之所,这段时期大约在南宋以前。
随着南宋的节节败退,赣南的客户开始跨过武夷山脉,进入福建最西南的汀州,这里有汀江冲刷之下产生的山区平原,足够更多的人口定居,久而久之,汀州开始聚集人口,并开始有了昌盛之像。
汀州的人口增长,最先受到冲击的是与之相邻的漳州闽南人,这过程不可避免的会发生汀州客户对漳州百姓的骚扰和侵蚀。
在漳州人的印象中,他们的祖先正是因为闽粤赣蛮獠嚣乱而从中原南下的河洛人,在口耳相传之下,他们对闽粤赣边区的印象仍停留在“蛮獠”、“畲人”、“畲客”的初始状态,于是他们将这些名讳也记录在平时的往来之中。
特别是,在南宋以前,住在山区的畲客是一群擅长刀耕火种、不需缴纳税赋的外族,想当然的,漳州人会把这些客户流民也当做同一类对待。
足以佐证的是,在南宋末年,这些畲客还协助南宋官军一起对抗元兵,兵败后又返回山区避居。
或许闽南人太过于强悍,一直东向的汀州客户开始转移方向,向南进发,最先到达的是潮州下属的山区县,也就是梅县,又过了许久,潮州北边的县几乎都被客户攻陷,于是朝廷顺势在其地设立嘉应州,从而使客家的先人有了幸福美好未来的根据地。
三,客家人的扩张之术
不得不说,客家先人真的是添丁有术,人口的爆发一方面来自源源不断的中原流民和客户,另一方面因闽南和潮汕传入的高产作物如番薯,使得山区人口繁衍需要的口粮问题得以解决。
于是,擅长迁徙的客家先人,以嘉应州为基地,不断向西、向南继续扩张,很快的,潮汕与闽南交界的饶平,潮汕与广府交界的海陆丰地区,以及广府传统地盘珠江两岸都聚集了许多以“打工”为职业的客户,他们的人口增长快的惊人,终于,与广府人起了冲突,爆发了大规模的“土客械斗”。
而此时的“客”仍然还不算是客家,应该还是沿袭宋代的“客户”概念,及客居之角色,但最终由广府人赋予了客家人“客家”的名号,这种名称最终为所有客家人所接受。
这次冲突,最终以客家人失败告终,其结果,使得客居珠江两岸的大量客家人退守粤北或继续西进进入广西和四川,甚至直接改向下南洋,从而掀起了客家千里迁徙的又一大幕。
在此过程中,客家的有识之士,如罗香林,为客家人的正名起了十分关键的作用,以至于时至今日,但凡谈起汉族,大家都会想到“客家人”;与之同类的场景,如果发生在明清以前,那么客家人必然多以“蛮獠”视之。
四,客家人的本质
客家人,之所以称作“客家”,确实与其几百年来反复的迁徙有关,居无定所,与“客”最为接近。
而之所以为客,在于周边的邻居都是成熟的民系,有着自己的风俗习惯,当格格不入的新人迁来而自辟途径意欲形成方言岛或文化岛时,必然会引起当地人的反感,以至于发生冲突。
至于客家人,到底是什么成份?是否是少数民族,这应该没有太大的争议。
强大者如客家人,其向外扩张的能力实在是了得,周边的民系,潮汕大约有近半被客家化,而闽南漳州山区也有部分乡镇转化为客家人,至于广府,其珠江东岸和粤北更是清一色的客家。
从中我们也可以推测尽管闽粤赣有着大量的畲族人口,但在客家人的逼迫下,畲族人要么被同化,要么迁徙,于是,我们看到闽粤赣边区的畲族后裔变成了客家人,讲着客家话,有的有幸在解放后恢复畲族身份,有的只好继续同化而不自知。
几乎于客家扩张的同时,闽粤赣的一支畲族东迁至闽东和浙南,他们便是畲族中的幸存吧。
因此看,客家人仍是以南宋后中原人为主体,以失地百姓和躲避战乱的流民为主要构成,坚守着汉人的传统,又不愿意抛弃祖宗之言和风俗习惯,但又融入了畲族人部分特色的一个群体,故而与早来的中原人后裔显得格格不入,故而被称为“客家”。
文/圭海四记
其次,说一下客家人的来历。客家人是汉族族群在各个 历史 阶段迁移而形成的众多族群分支之一。随着秦代攻略岭南,晋末的五胡乱华,北宋靖康之难,先后有大量的汉人或迁移或逃难从中原的河南,山西,山东等地来到两广,闽粤,两湖等定居。到了南宋,官府分户籍为主籍、客籍,移民入籍的为客籍人。中原迁移来人也就自称客家人,取人在他乡为异客之意,这也是“客家人”这个称呼的来源吧。其后客家人由于战乱又经历的几次迁移,形成现在的分布格局。
客家人据统计全球有8000万人,我国就有5000多万,广东就分布了2500万人(数据来源),客家人勤劳,灵活,适应性强,旅居侨居海外80多个国家,在世界各地都生活的很好。 历经千年的迁移,客家人形成了自己独特的文化,既保留的大量中原文化的传统,又吸收了地域和百越民族的文化特征。围楼,围龙楼,客家土楼都是著名的民俗建筑。客家文化既是汉族文化的重要分支,也是中国南方文化的重要组成部分。
最后说一点,客家人来自当时经济 科技 发达的北方中原地区,有些贵族为避祸或逃难,举家搬迁,带来了各行各业的工匠,艺人,客观上传播先进的制造,农耕技术和思想,促进了南方百越地区文明发展,同时也是中华民族大融合的鲜活史证之一。
个人对客家人的认识就这些,写出来供大家指正参考。
客家人就是一方独特文化体系的人群。客家人的生活习俗、风土人情明显区别于其它民族。特别是饮食习惯、语言文化、经济状况,国内以粤、客独占风骚!客家人热情大方、文化修养普遍较高;客家人地广人杰,遍布广东、广西、江西多省地;客家菜与粤菜同盘同味,众所周知:吃在广东。我,就是客家人……
客家人为什么叫客家人?首先说说客家人由来。
在秦时始皇帝派赵陀等众多秦人征服百越之地,就算秦亡也不可归,赵陀后来成立南越到汉朝才归降,而众多秦兵之中就已经带去一些客家人进入岭南地区,加上始皇帝大兴土木,很多客家先祖被派去砍木材,真正客家人第一次大规模迁移是在五胡乱华时期,衣冠南渡者就是客家人,这些汉人带来了先进的农耕文化,根据当地地势建立了客家民居,聚族而居抵御外族,第二次迁移是安史之乱到唐灭宋起时期,第三次迁移是涯山之战再无华夏,客家人至此完成了中原的全部迁移,此时已经有客家人文天祥等英雄奋起抵抗外族了,第四次迁移是明末清初此时南迁客家人稳定发展族群壮大开始迁往沿海和四川等地也有回迁现象总之就是在岭南地区打转转。历代科举考试客家人因为不是本地户籍,有一个特殊的考试名额称客籍,而客家人是客籍人对自己的自称,即在外乡为客,“ 筚路桃弧展转迁,南来远过一千年。 方言足证中原韵,礼俗犹留三代前。 ”黄遵宪曾这样描述客家人。第五次大迁移是晚清由80%的客家人领导的太平天国运动覆灭,很多客家人怕受灭族之灾,大批迁移海外,奠定了客家人分布全球的基础。迁至海外客家人以HAKKA自称在英语表达中这一词代表客家人,客家文化。客家人不是少数民族,我们是汉族人口最多分布最广的一个民系,我们从来没有忘记自己来自哪里,河洛音至今犹存,客家人不是一个地区的代表,他是全球一亿八千多万客家人的自称,客家文化不仅仅属于客家人,他是研究汉文化不可缺失的一部分,客家建筑不仅仅是客家人抵御外族之用,他还是中国四大结构古建筑之一
客家传统服饰,是客家人把汉服做的改良,没有长袍,长衫那么束缚,与明朝遗民穿青人的服饰很接近。有人说客家人是与瑶族苗族畲族汉化的后代,这点新中国成立后来讲不可否认,客家人以前与苗瑶并不融合,只有少部分畲族与客家人有融合,而且是畲族被我们客家人汉化,畲族历经唐宋元明四朝灭族之灾几百万畲族人灭得所剩无几,剩下的畲族人想要活只能与客家人融合舍弃畲族文化,现在客家地区的畲族人会讲畲语的少之又少基本汉化了。客家话作为古音与广府话一样用来读诗很押韵
大家用普通话试着念一下,这首诗是不是不押韵?但是用客家话念“远上寒山石径斜”的“斜”字,读“峡”,正好与二四句末的“家”和“花”押韵,在古音中“斜”也是读“峡”,跟客家话正好相同。
这是我先祖张氏子寿公所写的诗,客家话来读更有韵味。
西江夜行
唐代:张九龄
遥夜人何在,澄潭月里行。
悠悠天宇旷,切切故乡情。
外物寂无扰,中流澹自清。
念归林叶换,愁坐露华生。
犹有汀洲鹤,宵分乍一鸣。
这就是我对客家的部分表达。
客家人不是民族概念,也不是地域概念,而是汉民族内部的族群分支之一:目前全球约有八千万客家人。其中约五千万人分布在中国的广东、江西、福建、广西、四川、海南等19个省的 180多个市县,广东省本地客家人数达到2500万左右,占到广东本地族群的三分之一,广东的三大方言就是粤语、潮汕语和客家话。约600万人分布在香港、澳门、台湾地区,约1500万人分布在印度尼西亚、马来西亚、泰国、新加坡、越南、美国、秘鲁、毛里求斯等80余个国家和地区,客家语也是当地语言的重要组成部分。惠州、梅州、深圳、赣州、龙岩、河源、韶关、贺州、沙巴州、新竹是客家人重要的聚居城市,梅州、惠州、赣州、汀州被誉为“客家四州”。
客家人说白了就是“外人”的意思,是相对于原住居民而言。严格意义上而言:广东的的几大族群都是混合同化了岭南最早的原住居民百越诸族而最终形成的客家民系并不比广东其他民系形成的时间晚。因为客家语本是中原雅言,只是到了南方后吸收了一些土著语言,但其主体仍是中古雅韵。最早迁徙来到广东的客家人是秦始皇南征百越时的秦军后裔,这些人和当地百越民族融合逐渐形成了广东的客家民系。此后陆陆续续有中原百姓不断迁徙到南方,融合到客家人族群中。
西晋因八王之乱、五胡乱华而亡:中原大地成为五胡部族角逐的战场,大量农田荒废,汉人被掳掠为奴。长年的战乱使中原百姓生活困顿,人吃人的现象开始涌现,为了生存一些不堪压迫的中原百姓由中原经河南南阳,进入襄阳,沿汉水入长江向东迁往湖北、安徽、江苏一带;向南则由九江到鄱阳湖,或顺赣江进入赣南山区。其前锋已抵达今梅州的大埔,并于东晋义熙九年(即公元413年)以“流民营”为基础设置了义招县。这时东晋王朝为安置中原移民,专门设立了侨州、郡、县,予以各种优待。这股潮流此起彼伏,持续170多年,迁移人口达一二百万之众。
唐朝安史之乱后藩镇割据,加之中原地区连年灾荒,官府敲榨盘剥,民不聊生,许多城乡烟火断绝,一片萧条,终于激起黄巢起义。黄巢起义转战大半个中国,惟有赣南、闽西南和粤东北受战乱影响较小,于是又有大量中原百姓由九江溯赣江而上,来到今天的赣南、闽西、粤东北的三角地带定居。根据客家族谱记载:这时期的移民避居福建宁化石壁洞者也不少。这次南迁延续到唐以后的五代时期,历时90余年。
公元1126年北宋东京汴梁被金军攻破,宋高宗赵构南渡,随高宗渡江南迁的臣民达百万之众。金兵进入中原后又有大量中原百姓渡江南下。再后来蒙古灭金,后又与宋开战,赣、闽、粤交界处成为宋、元双方攻守的战场。在抗元过程中不少客家子弟投身行伍随军转战,也有一部分客家人为躲避战乱进入粤东的梅州、惠州一带。因为这时户籍有“主”、“客”之分,移民入籍者皆编入“客籍”。而“客籍人”遂自称为“客家人”。
明末清初有的客家义士追随郑成功反清迁居台湾,有的向粤北、粤中、粤西搬迁的;有的到了广西、湖南、四川。与此同时由于从美洲传入的甘肃、土豆等高产作物最先在南方沿海登陆,这使当地的人口开始膨胀:赣、闽、粤边区的客家人经过200多年的发展,人口大增,而当地山多田少,人地矛盾日益尖锐。而当时的四川地区在经历明末清初的战乱后几乎出现人口大规模灭绝的现象,朝廷希望向四川移民以解决人地矛盾,于是由中原移居两湖、两广的汉民又大量入川:朱德、郭沫若、韩素音的祖先,都是当时由广东、福建迁到四川的客家人。由于 历史 上这次湖广填四川的巨大影响,时至今日四川的客家子弟中还流传着一个传说:每一个四川客家子弟的手腕上都有当年祖先入川时被绳索捆绑过的痕迹。
但明末清初的这次人口迁徙并没能从根本上解决岭南地区的人地矛盾问题,到清中期客家子弟和当地原住居民之间时不时会为争夺田地、水源发生械斗,时人称之为来土之争——来者远来之人也既是指的客家人,土者土著原生之民也。天平天国运动兴起后利用当时人地矛盾尖锐的现实以客家人为基本队伍,转战南方十余年。天平天国失败后这些客家人分别迁到海南、广西,甚至飘洋过海去谋生。
除了在国内的迁徙之外,自宋代起就不断有客家先民为躲避战乱移居海外。《水浒后传》记载道:阮小七、李俊等人后来下南洋自立为王,虽是小说家之言,但也从侧面反映了当时中国东南沿海一带先民移居海外的经历。南宋祥兴二年(公元1279年)宋将张世杰兵败崖山,左丞相陆秀夫(江苏盐城人)负幼帝蹈海而亡;其幼子陆自立(号复宋)和其他南宋遗民乘番舶外逃至南洋爪哇岛。陆自立被推举为首领,自立爪哇顺塔国。此后华人陆续在东南亚地区建立渤泥国、“飞龙”国、纳土纳岛国、马来吴氏王国、暹罗吞武里王朝、兰芳共和国、戴燕王国等,在东南亚经商定居者也大有人在。这其中有大量的客家子弟陆续通过海路和陆路向海外迁徙:海路由厦门、汕头、广州、海口、虎门、香港和台山赤溪的凼家冲等港口出发,乘船冒险到达南洋各地。陆路通过广西、云南边境进入缅甸、越南等地。其中包括宋末抗元、清初“反清复明”、清末太平天国运动和孙中山早期领导的各次武装起义失败后逃亡海外的志士,以及相当数量的破产农民和城市贫民,他们或自驾帆船,或被掳掠、诱骗、招雇为“契约华工”到南洋等地从事苦役。20世纪中叶以来又有部分人由原住国向欧美等国乃至世界各地再行迁移。现在客家后裔已遍布五大洲的80多个国家和地区。正所谓“凡有海水的地方,就有华人,有华人的地方就有客家人”。
客家是最纯正的汉人,不是少数民族,客家话是活的文言文,很多古汉语依然在日常语句中出现。在我们客家的古坟上都有能证明我们是汉人的一排字(碑上),几百年前的也一样,尤其开头两字"中华",男性的一般是"中华大德望xxx。。。。之墓";女的是"中华大懿德xxx之墓"都说明生活在这块土地上的是汉人。
客家人,或称客家人、客家族群、客家民系,在四川称为土广东人,是岭南汉族的一个重要分支,也是汉族在世界上分布范围广阔、影响深远的民系之一。客家的说法起源于广东四邑地区,清初梅州人外迁珠三角,被广府人称客家,迁广西,称来人,迁江西,被称棚民,后改客籍人,至今江西等地称客家人为客籍人,客家人是太平天国运动与红色苏维埃革命的主力。为建立各个民族平等的新中国发挥了重要的作用。 客家的起源存在多种说法,主要的有客家中原说和客家混血说。客家中原说认为客家主体构成为来自中原的移民,而客家土著说则认为“客家共同体,是南迁汉人与闽粤赣三角地区的古越族移民混化以后产生的共同体,其主体是生活在这片土地上的古越族人民,而不是少数流落于这一地区的中原人”。从两宋开始,中原汉民大举南迁,经赣南、闽西到达梅州,最终形成相对成熟的、具有很强稳定性的客家民系。此后,客家人又以梅州为基地,大量外迁到全国乃至世界各地。“客家之都”为嘉应州。
迄今为止,对哪里是“纯客家住地”,哪里是“非纯客家住地”,事实上并无公认的确切的界定标准,只能相对而言。罗香林《客家源流考》一书中,在广泛研究的基础上,对国内客家人的分布区域作了大致划分。国内客家人主要聚居在广东、福建、江西、广西、四川、台湾等地,其中纯客家县有33个,非纯客家县有144个。在国外,客家人的分布就更为广泛,所谓“有海水的地方就有华侨,有华侨的地方就有客家人”。
简单的说,客家人就是北民因战乱南迁至赣闽粤三省交界的地方(由赣入闽再入粤),在和本地人日益交融中形成的有自己独特文化的一个汉族民系。所以,客家人是汉族,而不是少数民族。客家人这个词出现的比较晚,在客家这个民系形成的时候,并不叫客家。因此,有些人对客家这个称呼不是很认同。客家人的大本营就在赣闽粤三省交界的地区,以及广东的西部、广西、四川、海外。
所谓“客家人”,是指原籍中原的汉族,历经五次的大规模南迁,在南方各省形成的具有独特风貌的客家民系,它是中华汉民族八大民系中重要的一个支糸
简单的说,客家人就是北方汉族人民因战乱南迁至赣闽粤三省交界的地方(由赣入闽再入粤),在和本地人日益交融中形成的有自己独特文化的一个汉族民系
所以,客家人是汉族,不是少数民族
“客家人”这个词汇出现得比较晚,在客家人这个民系形成的时候,并不叫客家人,因此有些人对“客家”这个称呼不是很认同
客家人的大本营就是在赣闽粤三省交界的地区,以及广东的西部、广西、四川、海外
在客家文化的孕育、成长及向外播迁中,客家文化内部也经过一次又一次的整合,并在其整合的过程中,不断地吸取周边文化的营养,来不断地发展与壮大自己
所以,客家文化与中国其它文化一样,也是不断发展的文化
随着 社会 的进步,客家文化中过去为适应自身生存发展需要,而形成的一些意识或习惯,如小农经济意识、小团体主义及与之有关的生活习惯等,在市场经济日益完善的今天,也许会显得有些陈旧,有些不符合时宜
所以今天的他们应该跳出客家圈,以“会当凌绝顶,一览众山小”的气势,正确地认识与估量客家文化,以发扬客家优秀文化传统的同时,勇敢抛弃其中不合时宜的因素
罗香林先生是客家学的奠基人。依据罗先生的理论, 客家人是汉族的一个支系(也即书中的“民系”概念),就像宗族会分成若干房支一样,汉族有很多支系,如南系和北系,而南系在唐末又分有越海系、湘赣系、南汉系(两广本地人,也称广府系)、闽海系(亦称福老系)、闽赣系(即客家系)等几支。所以,依据罗先生的理论,客家并非少数民族,而是汉族人的一部分 。这一结论在此后虽有争论(如房学嘉认为客家人主体族源是越人,见其著作《客家源流探奥》),但基本成为学术界的共识。而上海复旦大学李辉等从遗传学的角度, 对福建长汀的 148 个客家男子做了遗传分析,其结果显示,客家人父系遗传的 Y染色体与中原汉族最近 ,混合分析发现, 客家人数据结构中汉族结构占 802% ,类畲族结构 13%,类侗族结构 68%。结果也进一步佐证了客家人的主体来源是汉族。
参考文献
罗香林:《客家研究导论》、《客家源流考》
周运中:《客家人由来新考》
李辉、潘悟云等《客家人起源的遗传学分析》
家族树是家族网团队研发的一项应用,它就好比是一个树状的数字家谱,用户在树上可以进行沟通互动娱乐等。
具体来说呢,
家族树,是指利用互联网技术,依据血缘关系或亲祖关系把人联系起来,再按照辈份排序构成树的模型。 在树中的成员可以清楚的知道自己的家族起源、家族关系以及其他成员的基础信息,并且享有记录、分享等沟通娱乐服务。
作用和功效有几个:
追祖溯源
汇聚亲情
沟通分享
传承家族文化
家族树的树状特征和原理可以让树无限延伸和扩大,添加家庭成员,是目前用于家庭沟通比较好的网络工具之一。
你去自己亲自建立一颗家族树会更清楚!
数组是最简单也是最常见的数据结构。它们的特点是可以通过索引(位置)轻松访问元素。
它们是做什么用的?
想象一下有一排剧院椅。每把椅子都分配了一个位置(从左到右),因此每个观众都会从他将要坐的椅子上分配一个号码。这是一个数组。将问题扩展到整个剧院(椅子的行和列),您将拥有一个二维数组(矩阵)。
特性
链表是线性数据结构,就像数组一样。链表和数组的主要区别在于链表的元素不存储在连续的内存位置。它由节点组成——实体存储当前元素的值和下一个元素的地址引用。这样,元素通过指针链接。
它们是做什么用的?
链表的一个相关应用是浏览器的上一页和下一页的实现。双链表是存储用户搜索显示的页面的完美数据结构。
特性
堆栈是一种抽象数据类型,它形式化了受限访问集合的概念。该限制遵循 LIFO(后进先出)规则。因此,添加到堆栈中的最后一个元素是您从中删除的第一个元素。
堆栈可以使用数组或链表来实现。
它们是做什么用的?
现实生活中最常见的例子是在食堂中将盘子叠放在一起。位于顶部的板首先被移除。放置在最底部的盘子是在堆栈中保留时间最长的盘子。
堆栈最有用的一种情况是您需要获取给定元素的相反顺序。只需将它们全部推入堆栈,然后弹出它们。
另一个有趣的应用是有效括号问题。给定一串括号,您可以使用堆栈检查它们是否匹配。
特性
队列是受限访问集合中的另一种数据类型,就像前面讨论的堆栈一样。主要区别在于队列是按照FIFO(先进先出)模型组织的:队列中第一个插入的元素是第一个被移除的元素。队列可以使用固定长度的数组、循环数组或链表来实现。
它们是做什么用的?
这种抽象数据类型 (ADT) 的最佳用途当然是模拟现实生活中的队列。例如,在呼叫中心应用程序中,队列用于保存等待从顾问那里获得帮助的客户——这些客户应该按照他们呼叫的顺序获得帮助。
一种特殊且非常重要的队列类型是优先级队列。元素根据与它们关联的“优先级”被引入队列:具有最高优先级的元素首先被引入队列。这个 ADT 在许多图算法(Dijkstra 算法、BFS、Prim 算法、霍夫曼编码 )中是必不可少的。它是使用堆实现的。
另一种特殊类型的队列是deque 队列(双关语它的发音是“deck”)。可以从队列的两端插入/删除元素。
特性
Maps (dictionaries)是包含键集合和值集合的抽象数据类型。每个键都有一个与之关联的值。
哈希表是一种特殊类型的映射。它使用散列函数生成一个散列码,放入一个桶或槽数组:键被散列,结果散列指示值的存储位置。
最常见的散列函数(在众多散列函数中)是模常数函数。例如,如果常量是 6,则键 x 的值是x%6。
理想情况下,散列函数会将每个键分配给一个唯一的桶,但他们的大多数设计都采用了不完善的函数,这可能会导致具有相同生成值的键之间发生冲突。这种碰撞总是以某种方式适应的。
它们是做什么用的?
Maps 最著名的应用是语言词典。语言中的每个词都为其指定了定义。它是使用有序映射实现的(其键按字母顺序排列)。
通讯录也是一张Map。每个名字都有一个分配给它的电话号码。
另一个有用的应用是值的标准化。假设我们要为一天中的每一分钟(24 小时 = 1440 分钟)分配一个从 0 到 1439 的索引。哈希函数将为h(x) = x小时60+x分钟。
特性
术语:
因为maps 是使用自平衡红黑树实现的(文章后面会解释),所以所有操作都在 O(log n) 内完成;所有哈希表操作都是常量。
图是表示一对两个集合的非线性数据结构:G={V, E},其中 V 是顶点(节点)的集合,而 E 是边(箭头)的集合。节点是由边互连的值 - 描述两个节点之间的依赖关系(有时与成本/距离相关联)的线。
图有两种主要类型:有向图和无向图。在无向图中,边(x, y)在两个方向上都可用:(x, y)和(y, x)。在有向图中,边(x, y)称为箭头,方向由其名称中顶点的顺序给出:箭头(x, y)与箭头(y, x) 不同。
它们是做什么用的?
特性
图论是一个广阔的领域,但我们将重点介绍一些最知名的概念:
一棵树是一个无向图,在连通性方面最小(如果我们消除一条边,图将不再连接)和在无环方面最大(如果我们添加一条边,图将不再是无环的)。所以任何无环连通无向图都是一棵树,但为了简单起见,我们将有根树称为树。
根是一个固定节点,它确定树中边的方向,所以这就是一切“开始”的地方。叶子是树的终端节点——这就是一切“结束”的地方。
一个顶点的孩子是它下面的事件顶点。一个顶点可以有多个子节点。一个顶点的父节点是它上面的事件顶点——它是唯一的。
它们是做什么用的?
我们在任何需要描绘层次结构的时候都使用树。我们自己的家谱树就是一个完美的例子。你最古老的祖先是树的根。最年轻的一代代表叶子的集合。
树也可以代表你工作的公司中的上下级关系。这样您就可以找出谁是您的上级以及您应该管理谁。
特性
二叉树是一种特殊类型的树:每个顶点最多可以有两个子节点。在严格二叉树中,除了叶子之外,每个节点都有两个孩子。具有 n 层的完整二叉树具有所有2ⁿ-1 个可能的节点。
二叉搜索树是一棵二叉树,其中节点的值属于一个完全有序的集合——任何任意选择的节点的值都大于左子树中的所有值,而小于右子树中的所有值。
它们是做什么用的?
BT 的一项重要应用是逻辑表达式的表示和评估。每个表达式都可以分解为变量/常量和运算符。这种表达式书写方法称为逆波兰表示法 (RPN)。这样,它们就可以形成一个二叉树,其中内部节点是运算符,叶子是变量/常量——它被称为抽象语法树(AST)。
BST 经常使用,因为它们可以快速搜索键属性。AVL 树、红黑树、有序集和映射是使用 BST 实现的。
特性
BST 有三种类型的 DFS 遍历:
所有这些类型的树都是自平衡二叉搜索树。不同之处在于它们以对数时间平衡高度的方式。
AVL 树在每次插入/删除后都是自平衡的,因为节点的左子树和右子树的高度之间的模块差异最大为 1。 AVL 以其发明者的名字命名:Adelson-Velsky 和 Landis。
在红黑树中,每个节点存储一个额外的代表颜色的位,用于确保每次插入/删除操作后的平衡。
在 Splay 树中,最近访问的节点可以快速再次访问,因此任何操作的摊销时间复杂度仍然是 O(log n)。
它们是做什么用的?
AVL 似乎是数据库理论中最好的数据结构。
RBT(红黑树) 用于组织可比较的数据片段,例如文本片段或数字。在 Java 8 版本中,HashMap 是使用 RBT 实现的。计算几何和函数式编程中的数据结构也是用 RBT 构建的。
在 Windows NT 中(在虚拟内存、网络和文件系统代码中),Splay 树用于缓存、内存分配器、垃圾收集器、数据压缩、绳索(替换用于长文本字符串的字符串)。
特性
最小堆是一棵二叉树,其中每个节点的值都大于或等于其父节点的值:val[par[x]]
客家人为什么叫客家人?
本文2023-09-22 17:54:08发表“资讯”栏目。
本文链接:https://www.lezaizhuan.com/article/83939.html