用二叉树实现家谱运算

栏目:资讯发布:2023-10-03浏览:1收藏

用二叉树实现家谱运算,第1张

C++语言: 二叉树实现的简单家谱树

/

File Name: BiTreecpp

Author: Geng Lequn[glq2000@126com]

Thur July 1 2010

Discription: 建立二叉家谱树,实现输入任意两个人的名字,查找得到其关系

/

#include <iostream>

#include <string>

#include <cstring>

#include <cstdlib>

#include <vector>

#include <mathh>

using namespace std;

typedef struct _Node

{

string sex; //性别 m 男; f 女

string name; //此人的姓名

string spause; //配偶的姓名

unsigned short level; //层次 辈分最高一层为1,下一层为为2,以此类推

struct _Node l_child; //指向其第一个孩子的指针

struct _Node r_brother; //指向其某一个兄弟姐妹的指针, 即左孩子为其后代,右孩子为其兄弟姐妹

struct _Node btr; //指向其父亲或者母亲的指针

_Node():level(0),l_child(NULL),r_brother(NULL),btr(NULL){cout<<"constructor"<<endl;}

~_Node(){cout<<name<<" destructor"<<endl;}

}Node, PNode;

void CreateBiTreePreOrder(PNode &pn, PNode pback, unsigned short depth);//建立二叉家谱树,以先序方式

void VisitBiTreePreOrder(PNode root); //前序遍历此二叉树

void TellRelation(PNode root); //判断两人关系

void DestroyBiTreePostOrder(PNode root); //销毁二叉树,释放节点占用的空间

void FindPersonMiddleOrder(PNode root, string name, PNode &presult); //返回家谱中指向某人的指针,找不到返回NULL

Node root=NULL; //全局变量,二叉树的根节点

unsigned findPersonFlag = 0; //标志位,0 没找到; 1 找到,找到后就不再搜索直接返回;利用此flag可避免将整个tree遍历一遍(若该name在tree中存在的话)

int main()

{

cout<<"请按先序遍历的顺序根据提示输入家谱信息,不存在则输入\"#\""<<endl;

CreateBiTreePreOrder(root, NULL, 1);//建立二叉家谱树,以先序方式

VisitBiTreePreOrder(root); //前序遍历此二叉树

TellRelation(root); //判断两人关系

DestroyBiTreePostOrder(root); //销毁二叉树

getchar();getchar();getchar();

return 0;

}

/

function:建立二叉家谱树,以先序方式

argument:

pn: 指向二叉树节点的引用

pback: pn这个节点的btr指针的值,即指向其parent的指针

depth: 该节点的层次,分最高一层为1,下一层为为2,以此类推

/

void CreateBiTreePreOrder(PNode &pn, PNode pback, unsigned short depth)

{

string str;

cin>>str; //输入该人信息,格式是 sex-name-spausename,如不存在则输入#

if(str == "#") //如: M-tom-marry, 表示此人叫tom, 男性, 配偶名字marry

{

pn = NULL;

return;

}

//如果是自定义的struct/class,应该使用构造函数。如果是内建数据类型,

//比如int,应该memset。 当然,更好的建议是使用vector取代new出来的数组

pn = new Node;

//处理输入的字符串

vector<string> v;

for(size_t b=0, e=strfind('-'); ; e=strfind('-', b))

{

if(e == string::npos)

{

vpush_back(strsubstr(b));

break;

}

else

vpush_back(strsubstr(b, e-b));

b = e+1;

}

//初始化该节点

pn->sex = v[0];

pn->name = v[1];

pn->spause = v[2];

pn->btr = pback;

pn->level = depth;

//递归建立左右子树的节点

CreateBiTreePreOrder(pn->l_child, pn, depth+1); //注意后两个参数的值

CreateBiTreePreOrder(pn->r_brother, pback, depth); //注意后两个参数的值

}

/

function: 前序遍历此二叉树

/

void VisitBiTreePreOrder(PNode pn)

{

if(!pn)

return;

cout<<endl<<"sex:"<<pn->sex<<endl;

cout<<"name:"<<pn->name<<endl;

cout<<"spause:"<<pn->spause<<endl;

cout<<"level:"<<pn->level<<endl;

cout<<"father's name:"<<((pn->btr == NULL)"NULL":pn->btr->name)<<endl;

cout<<"======================"<<endl;

VisitBiTreePreOrder(pn->l_child);

VisitBiTreePreOrder(pn->r_brother);

}

/

function: 中序遍历找到家谱中的一个人,返回其指针,若找不到,返回NULL

isSpause 1表示是找到的节点的配偶 0表示不是所找到的节点的配偶

/

void FindPersonMiddleOrder(PNode pn, string name, PNode &presult)

{

if(!pn)

return;

FindPersonMiddleOrder(pn->l_child, name, presult);

if(findPersonFlag) return;

if(name == pn->name || name == pn->spause)

{

presult = pn;

findPersonFlag = 1; //全局标志位,0 没找到; 1 找到,找到后就不再搜索直接返回;利用此全局flag可避免将整个tree遍历一遍(若该name在tree中存在的话)

return; //下次使用前不要忘记置为0

}

FindPersonMiddleOrder(pn->r_brother, name, presult);

}

/

function: 判断两人关系,若两人中至少一人不在树中,则两人无关系

若两人在树中,先判断两人是否同层次,若同层,判断是否是亲兄弟姐妹;

若不同层,设辈分大的人为A,辈分小的人为B,判断A和B是亲的还是表的,

比如,A为男性,且比B大一倍,判断A是否为B的爸爸,或亲叔叔(舅舅),或表叔叔(舅舅)

简单起见,此处没有区分是叔叔还是舅舅

比如,A为男性,且比B大两倍,判断A是否为B的亲爷爷(姥爷),或亲爷爷(姥爷)的亲兄弟

,或亲爷爷(姥爷)的表兄弟

简单起见,此处没有区分是叔叔和舅舅等做进一步区分

简单起见,查询时只输入节点中的name,不查询spause,否则处理起来太麻烦

/

void TellRelation(PNode pn)

{

string name1, name2;

//p1指向name1, p2指向name2, pbig指向辈分大的,psmall指向辈分小的

PNode p1 = NULL, p2 = NULL, pbig = NULL, psmall = NULL;

int differ = 0; //两人辈分数的差别

string title;

Label:

cout<<endl<<"输入想查询关系的两个人的名字,不想查则将两人名字输成#:"<<endl;

while(cin>>name1 && cin>>name2)

{

if(name1=="#" && name2=="#") return;

p1 = NULL; p2 = NULL; //因为程序是循环执行的,需要将上次遗留的值清掉

findPersonFlag = 0;

FindPersonMiddleOrder(root, name1, p1);

findPersonFlag = 0;

FindPersonMiddleOrder(root, name2, p2);

if(!p1 || !p2) //若有一个为空或都为空,说明至少有一个人不在家谱中,故两人无亲缘关系

{

cout<<name1<<((!p1)" 不在":" 在")<<" 家谱树中"<<endl;

cout<<name2<<((!p2)" 不在":" 在")<<" 家谱树中"<<endl;

cout<<name1<<" 和 "<<name2<<" 间没有关系"<<endl<<endl;

goto Label;

}

differ = (int)abs(p1->level - p2->level);

if(!differ) //辈分一样大

{

if(p1->sex == p2->sex)

{

if(p1->sex == "M") title = "兄弟关系";

else title = "姐妹关系";

}

else title = "兄妹(姐弟)关系";

if(p1->btr == p2->btr) //parent相同

cout<<name1<<" 和 "<<name2<<" 间是 "<<" 亲 "<<title<<endl;

else

cout<<name1<<" 和 "<<name2<<" 间是 "<<" 表 "<<title<<endl;

}

else //辈分不一样大

{

if(p1->level < p2->level) {pbig = p1; psmall = p2;}

else {pbig = p2; psmall = p1;}

switch(differ)

{

case 1:

if(psmall->btr == pbig)

title = ((pbig->sex == "M")"爸爸":"妈妈");

else

{

if(psmall->btr->btr == pbig->btr)

title = ((pbig->sex == "M")"亲叔(舅)":"亲姑(姨)");

else

title = ((pbig->sex == "M")"表叔(舅)":"表姑(姨)");

}

break;

case 2:

if(psmall->btr->btr == pbig)

title = ((pbig->sex == "M")"爷爷(姥爷)":"奶奶(姥姥)");

else

{

string tmp = ((pbig->sex == "M")"兄弟":"姐妹");

if(psmall->btr->btr->btr == pbig->btr)

title = ((psmall->btr->btr->sex == "M")"爷爷(姥爷)的亲":"奶奶(姥姥)的亲") + tmp;

else

title = ((psmall->btr->btr->sex == "M")"爷爷(姥爷)的表":"奶奶(姥姥)的表") + tmp;

}

break;

default:

string tmp2;

PNode pt = psmall;

int n = differ-2; //计算"老"字 (即grand这个字) 出现的个数

for(int i=0; i<n; ++i)

tmp2 += "老";

for(int i=0; i<differ; ++i)

pt = pt->btr;

if(pt == pbig)

title = tmp2 + ((pbig->sex == "M")"爷爷(姥爷)":"奶奶(姥姥)");

else

{

string tmp3 = ((pbig->sex == "M")"兄弟":"姐妹");

if(pt->btr == pbig->btr)

{title = tmp2 + ((pt->sex == "M")"爷爷(姥爷)的亲":"奶奶(姥姥)的亲"); title+=tmp3;}

else

{title = tmp2 + ((pt->sex == "M")"爷爷(姥爷)的表":"奶奶(姥姥)的表"); title+=tmp3;}

}

break;

}

cout<<pbig->name<<" 是 "<<psmall->name<<" 的 "<<title<<endl;

}

goto Label;

}

}

/

function: 后序遍历销毁此二叉树,释放节点占用的内存空间

/

void DestroyBiTreePostOrder(PNode pn)

{

if(!pn) return;

DestroyBiTreePostOrder(pn->l_child);

DestroyBiTreePostOrder(pn->r_brother);

delete pn;

}

孟姓氏的辈分排列 孟 氏 字 辈

希 言 公 彦 承 宏 闻 贞 尚 衍

兴 毓 传 继 广 昭 宪 庆 繁 祥

令 德 维 垂 佑 钦 绍 念 显 扬

建 道 敦 安 定 懋 修 肇 彝 常

裕 文 焕 景 瑞 永 锡 世 绪 昌

《孟氏家谱》说:行辈 “所以分尊卑,定表字,别长幼。”孟氏按行辈起名始于明代,从明景泰年间孟子的第五十六代孙孟希文被授予世袭翰林院五经博士算起,从次,孟子后裔开始授世职。当时,立了 “希、言、公、彦、承、 弘、闻、贞、尚、胤”十个子辈,后来,为了避清高宗(乾隆)爱新觉罗弘历之讳,改 “弘”,为“宏” ,为避清世宗(雍正)爱新觉罗胤祯之讳,改“胤”为“衍”。明末,又立了“兴、毓、传、继、广、昭、宪、庆、繁、祥”十个字辈。清统治四年(一八六五年),孟氏修谱时又立了“令、德、维、垂、佑 、钦、绍、念、显、扬 ”十个字辈。民国初年,又立了 “建、道、敦、安、定 、 懋、修、肇、彝、常、

裕、文、焕、景、瑞、 永、锡、世、绪、昌” 二十个字辈,并咨请当时的北洋军阀 内务部核准,登报周知。这样,从孟轲到孟繁骥共经历了七十四代,到“昌”字辈共一0五代。

孟氏族谱要求族人要严格遵照字辈起名,否则不能入谱,只作“外孟”处理。明代以来,孟氏族人遵从族规,十分讲究上下遵卑关系。平时孟氏族人见面,总要询问对方是“哪一字的?”“哪一辈的?”,就是指系何字派。还有的问“多大的?”“几世的”,就是指系孟轲的多少代孙。如对方回答不上来,不仅自己感到羞愧,而切也会被对方耻笑为数典忘祖。因此,孟氏族人对此都十分重视。

据民国年间编写的《孟氏族谱载》:孟氏字派与儒家的孔、颜、曾、闵等“虽姓氏不同,始祖各异,然可示同属儒门后裔”,故这些姓的字辈均相同。民国《孟氏族谱》还为孟氏子孙规定了十六条族训,即孝悌、忠信、读书、务农、忍让、勤俭、善行、本分、戒奢华、戒赌博、戒 、戒凶酒、戒种坟间隙地、戒茔间牧牛羊、戒健讼、戒戏谑。这些族训现在看来有些已经过时,但大部分至今仍有积极意义。

堂号,是各姓氏的代称,往往以祖上的光荣业绩,人物事迹或具有启示后人的故事来定堂号的,如姓钱姓的 “吴越堂”,周姓的 、细柳堂”,王姓的 “三槐堂”,等。有的只有一个堂号,而有的则有多个堂号,如孙姓的就有 “平治堂”,“乐安堂”,“富春堂”,“映雪堂”等四个堂号。

孟姓的堂号是“三迁堂”,其来历是孟柯的母亲教子有方,为了培养孟柯成才,曾三次搬家,最后终于搬到学校旁边,才把孟子培养成圣人。这就是《三字经》中讲的 “昔孟母,择邻处”,“孟母三迁”的故事始见于西汉刘向所著的《列女传》,其文日:孟母“其舍近墓,孟子之少也,嬉戏为墓间之事,踊跃筑埋。孟母说:此非所以居子也。乃去。舍市,其嬉戏为贾炫。孟母日:此非所以居子也。乃徒舍学宫之旁,其嬉戏乃设俎豆,揖让进退。孟母说:此真可以居子也。遂居之”。

译文如下:

据西汉刘向的《列女传》记载:孟母带着孟子原来居住在一片墓地旁,由于出殡送葬的人群经常从他家门口走过,所以,九岁的孟柯经常看到,便模仿送葬的,或学着孝子号掏大哭,或学吹喇叭,或和小伙伴们做抬棺材,掩埋死人的游戏。孟母看到这一切,认为长居此处,不但会影响孟轲读书,而且会败坏他的品德,于是便迁居到邹县城西北的庙户营,当时,庙户营是一个繁华的集镇,行商客贾,送往迎来,江湖术士,瞒哄欺人。终日置身于这样熙熙攘攘的闹市之中,孟轲又和邻居家的小孩学着商人做生意,讨价还价,叫卖吆喝。他的东邻是一家屠户,孟轲常去向他们学习杀猪宰羊。孟母认>>

姓孟的是有家谱吧~家谱是什么呢? 孟氏家谱》说:行辈 “所以分尊卑,定表字,别长幼。”孟氏按行辈起名始于明代,从明景泰年间孟子的第五十六代孙孟希文被授予世袭翰林院五经博士算起,从次,孟子后裔开始授世职。当时,立了 “希、言、公、彦、承、 弘、闻、贞、尚、胤”十个子辈,后来,为了避清高宗(乾隆)爱新觉罗弘历之讳,改 “弘”,为“宏” ,为避清世宗(雍正)爱新觉罗胤祯之讳,改“胤”为“衍”。明末,又立了“兴、毓、传、继、广、昭、宪、庆、繁、祥”十个字辈。清统治四年(一八六五年),孟氏修谱时又立了“令、德、维、垂、佑 、钦、绍、念、显、扬 ”十个字辈。民国初年,又立了 “建、道、敦、安、定 、 懋、修、肇、彝、常、裕、文、焕、景、瑞、 永、锡、世、绪、昌” 二十个字辈,并咨请当时的北洋军阀 内务部核准,登报周知。这样,从孟轲到孟繁骥共经历了七十四代,到“昌”字辈共一0五代。 希 言 公 彦 承 宏 闻 贞 尚 衍 56代 57代 58代 59代 60代 61代 62代 63代 64代 65代 兴 毓 传 继 广 昭 宪 庆 繁 祥 66代 67代 68代 69代 70代 71代 72代 73代 74代 75代 令 德 维 垂 佑 钦 绍 念 显 扬 76代 77代 78代 79代 80代 81代 82代 83代 84代 85代 建 道 敦  安 定 懋 修 肇 彝 常 86代 87代 88代 89代 90代 91代 92代 93代 94代 95代 裕 文 焕 景 瑞 永 锡 世 绪 昌 96代 97代 98代 99代 100代 101代 102代 103代 104代 105代

孟姓难道有家谱吗?为什么姓孟的都叫孟庆XX呢? 孟氏家谱》说:行辈 “所以分尊卑,定表字,别长幼。”孟氏按行辈起名始于明代,从明景泰年间孟子的第五十六代孙孟希文被授予世袭翰林院五经博士算起,从次,孟子后裔开始授世职。当时,立了 “希、言、公、彦、承、 弘、闻、贞、尚、胤”十个子辈,后来,为了避清高宗(乾隆)爱新觉罗弘历之讳,改 “弘”,为“宏” ,为避清世宗(雍正)爱新觉罗胤祯之讳,改“胤”为“衍”。明末,又立了“兴、毓、传、继、广、昭、宪、庆、繁、祥”十个字辈。清统治四年(一八六五年),孟氏修谱时又立了“令、德、维、垂、佑 、钦、绍、念、显、扬 ”十个字辈。民国初年,又立了 “建、道、敦、安、定 、 懋、修、肇、彝、常、裕、文、焕、景、瑞、 永、锡、世、绪、昌” 二十个字辈,并咨请当时的北洋军阀 内务部核准,登报周知。这样,从孟轲到孟繁骥共经历了七十四代,到“昌”字辈共一0五代。

希 言 公 彦 承 宏 闻 贞 尚 衍

56代 57代 58代 59代 60代 61代 62代 63代 64代 65代

兴 毓 传 继 广 昭 宪 庆 繁 祥

66代 67代 68代 69代 70代 71代 72代 73代 74代 75代

令 德 维 垂 佑 钦 绍 念 显 扬

76代 77代 78代 79代 80代 81代 82代 83代 84代 85代

建 道 敦  安 定 懋 修 肇 彝 常

86代 87代 88代 89代 90代 91代 92代 93代 94代 95代

裕 文 焕 景 瑞 永 锡 世 绪 昌

96代 97代 98代 99代 100代 101代 102代 103代 104代 105代

孟姓家谱 孟令保整理和续修的《孟氏家谱》分为旧谱和续谱两部分,大约7万字,收录了从明末清初迁入辽宁省抚顺地区的孟子第六十三代后人起,到现在为止的第七十九代后人的情况辽宁省抚顺市驿马站村的村民大多姓孟,其祖先为孟子的第六十三代孙。由孟令保整理的《孟子家谱》旧谱,是驿马站村孟氏后代于清朝光绪8年(公元1882年),经山东邹县孟庙所认可的“孟子世家流寓辽宁抚顺驿马站支谱”,共分四卷。此《孟氏家谱》支谱现保存于驿马站村孟氏族人之手。52岁的孟令保是沈阳化工学院教师,续修《孟氏家谱》始于1982年。《孟氏家谱》旧谱不仅收藏有山东邹县孟子故里图,提及孟子林、孟母林、亚圣庙,还有孟母三迁祠寺庙、孟子画像、石像,以及历朝历代统治者对孟子后人封号恩赉等。新谱分为五卷,增加了孟庙、孟子故里、孟子像等建筑的彩色照片。孟令保此次续修《孟氏家谱》,除增加从光绪8年至今100多年间抚顺孟氏族人的后代名丁外,还进一步考订了旧谱中有关《孟子年谱》中的相关内容。孟令保还亲手绘制了一幅长2米、宽1米的《孟氏族谱世系挂图》,收录了孟氏一族从黄帝起至孟子,再到孟子第七十九代孙的繁衍发展史。孟子名轲,字子舆,大约生活在公元前390年至前305年间,是战国时期著名思想家,主张“遵先王之法”,实行“仁政”、“民为先”,是中国古代儒家思想的代表人物之一。

孟氏家谱的顺序是什么啊? 孟氏家谱:第五十六代开始:希、言、公、彦、承、

弘(宏)、闻、贞、尚、胤(衍)、

兴、毓、传、纪、广、

昭、宪、庆、繁、祥、

令、德、维、垂、佑、

钦、绍、念、显、扬、

裕、文、焕、景、瑞,

永、锡、世、绪、昌。

孟氏按行辈起名始于明代,从明

景泰年间孟子的第五十六代孙孟希文

被授予世袭翰林院五经博士算起,从

次,孟子后裔开始授世职。当时,立了 “希、言、公、彦、承、 弘、闻、

贞、尚、胤”十个子辈,后来,为了避清高宗(乾隆)爱新觉罗弘历之讳,改 “弘”,为“宏” ,为避清世宗(雍正)爱新觉罗胤祯之讳,

改“胤”为“衍”。明末,又立了“兴、

毓、传、继、广、昭、宪、庆、繁、

祥”十个字辈。清统治四年(一八六五

年),孟氏修谱时又立了“令、德、

维、垂、佑 、钦、绍、念、显、

扬 ”十个字辈。民国初年,又立

了 “建、道、敦、安、定 、 懋、修、

肇、彝、常、裕、文、焕、景、瑞、

永、锡、世、绪、昌” 二十个字辈。

本人七十三代庆(庆)

孟氏家谱辈分排字 孟氏家谱孟家后代的排行家谱 全世界都是统一的,就是清朝皇帝御赐的辈分的排行

希 言 公 彦 承 宏 闻 贞 尚 衍

兴 毓 传 继 广 昭 宪 庆 繁 祥

令 德 维 垂 佑 钦 绍 念 显 扬

建 道 敦 安 定 懋 修 肇 彝 常

裕 文 焕 景 瑞 永 锡 世 绪 昌

孟姓的家谱 元朝至元元年(公元1264年)孟子五十一代孙孟祗祖曾续修家谱。泰定年间(公元1324年)五十二代孟惟恭将“孟氏宗支图”刻于碑上,藏于孔庙。明朝弘治年间(公元1488年)五十七代孟元详细考证了孟氏历代世系,也刻石立于孟庙。明万历年间(公元1573年)六十代孟承相曾续修族谱。明天启二年(公元1622年)六十二代孟闻钲组织孟氏族人共同捐资续修族谱,刊印后分发各户,以便于日后“认祖归宗”。清朝康熙五十九年(公元1720年)孟子六十五代孙世袭翰林院五经博士孟衍泰修编了一部较为完整的族谱,分送族众。清康熙六十一年(公元172Z年)秋孟子六十五代孙世袭翰林院五经博士孟衍泰重校《三迁志》。清道光四年(公元1824年)六十九代孙世袭翰林院五经博士孟继T主持续修族谱。清同治四年(公元1865年)七十代孙世袭翰林院五经博士孟广均主持续修了《孟子子世家谱》。道光十五年(公元1835年)七十代孙世袭翰林院五经博士孟广均主持纂修《重纂三迁志》。孟氏族谱规定,续谱之时要将旧谱缴入谱馆,一旦新谱修成,要将旧谱销毁,所以清朝以前的孟氏族谱已经没有了,如今传世的只有《道光谱》、《同治谱》两种木版木刻活字印本。《道光谱》收录了孟宁、孟润、孟衍泰在前几次主持修谱时所写的旧序,孟继告为之作了新序。全谱共计六册、十四卷。《同治谱》共计六册、十五卷,由孟广均作序,收录了五篇旧序,在内容与编排上,和《道光谱》大致相同,该谱是孟府内保存最为完备的孟氏族谱。《三迁志》为志孟之书,书名取意于孟母三迁,既是孟氏族谱,又是地方志中的一种专志,以志为主,志牒相兼。创修《三迁志》的是明朝沂州道佥事、八苍溪人史鄂。《三迁志》始修于明朝嘉靖年间,最后修于清朝光绪年间,主持纂修的大多是地方官吏及社会名流,前后共编修六次,多以三迁命名,如今能看到的只有雍正本和光绪本。现存的有关孟氏宗传方面的碑刻有:洪武六年(公元1373年)的碑刻,现立于孟庙东院启圣殿前东檐廊下。金大安三年(公元1211年)由孟子四十八代孙、宣武将军、邹县令孟润作序。《亚圣四十五世孙孟宁之墓》碑,刻孟氏世系图,立于孟母林内孟氏中兴祖孟宁墓前。元至元四年(公元1267年)立。《先师亚圣邹国公续世系图》碑存于孟庙寝殿院内。元延v元年(公元1314年)所立。《孟氏宗派图》碑存于孟庙寝殿院内。明顺二年(公元1331年)立。《孟氏宗支之记》碑现存于孟庙启贤门下。明朝洪武四年(公元1371年)立。《宗派之图》碑两块现分别存于孟庙承圣门北道东、乾隆御碑亭前。明正德六年(公元1511年)立。《孟氏大宗支派碑记》碑现存于孟府五代祠。清朝立。

姓孟的男孩名字,跟家谱,前两个字是孟立什么? 孟立雁,燕雀安之鸿鹄之志

问:家谱 姓孟 反繁 是孟家第几辈 如何排名? 我有个亲戚姓孟的,我叫他把家谱给我,你自己看吧!

希 言 公 彦 承 宏 闻 贞 尚 衍

兴 毓 传 继 广 昭 宪 庆 繁 祥

令 德 维 垂 佑 钦 绍 念 显 扬

建 道 敦 安 定 懋 修 肇 彝 常

裕 文 焕 景 瑞 永 锡 世 绪 昌

                              引言

                            何谓族谱

族谱:又称家谱、宗谱、谱牒等。是一种以图表形式反映家族内部的世代、传承等关系,以及重要人物事迹的书,是一种特殊的具有平民特色的文献。

                          族谱的组成

族谱的编纂是在儒学指导下进行的,从浅层次上看反映了祖宗崇拜,从深层次上看,则是儒学思想的反映。族谱,一般由以下部分组成:谱名、谱序、凡例、姓氏源流、世系考、世系表、人物传记、祠堂、坟莹、家训族规、恩荣录、像赞、艺文、纂修人名、领谱字号等。

                          1谱名

阐明本族的姓氏和堂号、续修次数等问题。以民国版《江津县汉鼓山王氏族谱》为例,在封面上即写明本谱由发源于江津的王氏族人续修,重修时间为乙酉年(民国三十四年,即1945年)。其中,江津是地名,汉鼓山王氏则是堂号。

堂号,实质上是祠堂名号,是家族的标志和代表。汉鼓山王氏祠堂,是太原王氏迁居到江津的始祖——王千一之子在父亲的墓旁不远处所建。

                          2谱序

谱序又叫卷首语,包括新序、旧序、族外人的客序、目录和刻印人名,以及其他关于本族的记述。谱序的内容大多是论述纂修族谱的重要意义、本族历次修谱的情形、本次修谱的缘起和本姓本族的源流等。而外姓名流所作的谱序,则注重儒家道德伦理的宣扬,强调敬祖宗、辨昭穆、孝祖先等。谱序的作者包括各色人等,有的是本族之人,有的是社会名流,也有的是当地的地方官员。

                            3凡例

凡例又称谱例,主要阐述族谱的纂修原则和体例,订出若干条适合社会潮流与需要的规则,作为修谱时所要遵循的原则。例如,1774年在续修《孔子世家谱》时,衍圣公府颁发的谱例共有34条。如入谱规矩,出谱规矩,立传规矩等。

入谱规矩。 一般来说,族谱在收录族人时,并不考虑他的贫富贵贱、社会地位如何。只要是同一祖宗的子孙,只要不违犯国法、家规等硬性要求,都能入谱。

出谱规矩。 主要针对犯罪、出家的族人,要从族谱中移除。

立传规矩。 对于家族重要人物,对其德行、功业、学说等进行记录,供后人学习。

                            4谱论

谱论专收先贤的谱说、谱论、谱议的篇章和古代经典中的有关论述,对修谱的作用、功能、意义、历史、原理和方法等加以发表和阐述。在历史上,有不少皇帝也很关注续修族谱。例如,清代的顺治皇帝指出续谱的目的在于强化孝梯思想,妥善处理长幼、尊卑之间的关系,加强家族内部的联系,教训青年人不要胡作非为,让他们明白礼节,改良社会风气。

                        7姓氏源流

姓氏源流记述的是本族的来源、历史渊源、始祖、世派、迁徙、各支派之间的关系。这是宏观介绍本族的来龙去脉,具有一定的史料价值。但是,由于对始迁祖之前的家族情况的考证,习惯上往往会追溯到黄帝,并且会千方百计和历史名人攀上关系。这样做虽说影响了家史的真实性,但是也说明了后人对于中华民族始祖黄帝的尊崇。

                          6世系考

世系考详细记载了族中所有成员,从第一世到修谱时的最后一代的姓名、字、号、生卒年月日、行次和子女等,记载本族成员的简况、名、讳、排行、字、号、生卒年月日和寿数等。有的也记载本族支系的历史渊源和迁徙情况。这部分是整个族谱中最重要的、篇幅最大的部分。

                          7世系表

世系表用图表形式反映家族内部的世代、传承等关系。有的地方会把世系表画在神轴上,逢年过节时,隆重地进行祭祀。山东高密的李氏家族,还保有这样的习惯。

                    从黄帝到始迁祖

在族谱修纂时,有些家族会把从黄帝到本族始迁祖的世系加以追溯。例如,前述衍庆堂《李氏宗谱》就罗列了从一世祖利贞到65代祖李道的世系。由于唐代之前的族谱大都已经散失,所以,这种追溯往往无法证实。

                          8字辈

字辈起源于宋朝,是专门登载族内姓名排行的字语。字辈一般选择具有美好寓意的文字,在排列时有的是四言、五言或七言,句子可长可短。字辈长则五六十字,短则十多字。据说宋太祖赵匡削曾经给赵家立了14个“范字”——“匡德惟从,世令子伯,师希与孟,由宜”,共14个字。在族谱中,“字派”“班次”“班辈”“班行”等都是字辈的同义词。记载字辈,主要是给族人取名使用,目的是“顾名思义”,了解尊卑和亲疏。

                          9宗祠

祠堂是族人祭祀祖先、处理族内重要事务的场所。在《礼记》一书中,先哲指出君子建立房屋,要先立宗庙,再立马厩和库房,最后才修建家人的住所。

宗祠出现之前,中国已经有了宗庙、石室、家庙等建筑。这些建筑的建造,都是为了表达对祖先的尊重,也是希望子孙后世能够铭记祖先的恩德。

                          10坟莹

古人认为,已经过世的祖先可以庇佑后人,因此要慎择葬地。让死去的祖先入土为安,也是子孙孝梯的表现。此外,古人非常注重对祖坟的保护。在族谱编纂中,坟莹一般包括墓地图、坟向、祖坟及各支派墓地分布等内容。

                          11族规

在中国古代,家族是社会的基本组成部分。个体与家族之间是“一荣俱荣,一损俱损”的依存关系。个体的行为,不仅涉及到自身的利益,而且关系到家庭、家族的兴衰荣辱。所以,有必要用家法族规来规范家族成员的行为,确保家族的长盛不衰。对此,宋代儒学家程颐强调,做父亲的要从严治家,否则就会乱了长幼尊卑之序和男女内外之别。要从严治家,就必须有家法。

族规又叫家范、家规、家训、家法、宗范等,是由家族的尊长或者成员代表共同制定的,带有劝导和惩戒双重特性,用以约束和教化族人的规则。儒家认为“道之以政,齐之以刑,民免而无耻;道之以德,齐之以礼,有耻且格”,意思是伦理劝诫比惩戒更为合理。家法族规深受儒家这一思想的影响,以道德教化为主,以惩戒为辅。

此外,还包括族产、契约、人物传记、迁徙记、恩荣录、像赞、艺文、纂修、捐资人名、领谱字号、续后篇等内容。

              族谱可以回答“灵魂三问”

我是谁?族谱的世系表可以回答。

我从哪里来?从族谱的迁徙记可以得到答案。

我要到哪里去?从族谱中的族规(家训)可以找到做人的目标。

                    千年族谱盼新生

《周易》说:有天地然后有万物,有万物然后有男女,有男女然后有夫妇,有夫妇然后有父子,有父子然后有君臣,有君臣然后有上下,有上下然后礼义有所措。只要有人类的地方,就会有种族传承,就会有族谱。在美国,有十三位总统有爱尔兰血统,包括罗斯福、肯尼迪、尼克松、克林顿等。而爱尔兰斋美国人大约有3700万人,在美国3亿人口中占据1/10。尽管只有大约31%的爱尔兰血统,美国总统奥巴马还是非常珍视它,希望它可以为自己的竞选提供帮助。

在当代,外国也有很多家谱网站。例如,奥巴马的爱尔兰血统就是由英国的家谱网站发现的。1850年,爱尔兰面临着严重的土豆大饥荒。那一年,有个名叫法尔蒙斯·基尔尼的爱尔兰青年和姐姐、姐夫一起逃到美国俄亥俄州,接收了亲戚的房产。后来,他结了婚,并生育了10个儿女。奥巴马的母亲安·杜汉就是基尔尼的后代之一。所以,法尔蒙斯·基尔尼是奥巴马的五世外祖父。奥巴马的父亲是肯尼亚人。2011年5月,奥巴马前往爱尔兰中部奥法利郡的小镇莫尼高尔“寻根”。

而在现代化的中国,也一定会有族谱的一席之地。

                            —end—

PS:除关于汉鼓山王氏的内容及外,本文其余内容大多引用自《家国情怀 儒家与族谱》(岳晗著)一书,笔者在此表示感谢。

家在四川大竹县的,老家在黄家乡,那边村里一个大队都是姓傅的。祖上据说是湖广填四川的时候来的,具体是哪里我也不明,据说是从湖南过来的。在我上面有接近二十代,辈份忘了额,记得族谱最后有这几字“联元应大华,博学仁贤(善)清”,父亲告诉我的那一字是贤还是善其实我有点忘了,我记得我看过的父亲记下来的是写贤字,然后我是”元“字辈的,再向上,祖一辈的是“生”,听父亲说曾祖一辈是“芳”字辈,去给太爷爷上坟的时候,我记得是说芳字辈的都是芳字在最后,我的太爷爷好像是叫傅杰芳,然后更上面的没记住,所以就不知道了。还有关于我们傅氏这个傅字的写法问题,家族里面有的写的是付,有的写的傅。然后我是高中以前写的付字,后来因为高中学校(大竹中学,在此处求校友)要求姓名与户口本一致,就按身份证上写,用的傅字,一直到现在。

第一部分:姓氏来源

①清《姓韵》中记载明氏始祖明由,燧人氏时四佐之一,②而其他书籍中均记载明氏始祖是秦穆公时丞相百里奚及孟明视之后。由

于中国历史的断代,而无史料可详考。

(

司马迁写《史记》将孟明写成百里奚之子,而春秋时典籍均无此例。

)

③北魏鲜卑壹斗眷氏改姓明氏

(

也无可考查

)

第二部分:明氏郡望

①平原郡:明氏住在平原郡鬲县

(

即今山东陵县及德州德城区

)

。鬲在东汉时为侯国,上古时有鬲氏住地。明氏平原鬲人史称世家大族,始祖百里孟明,明氏在于汉朝帅部治兵,文武光于秦代。代表人物有西晋明褒,明普,明预等,有东晋未年及南北朝时期明玩及其子孙僧胤、僧绍等,明俨、明亮、明丕、明协,文才武功均一时之冠。明氏的婚配往来都是世家大族。由于北魏的入侵,明氏散居多处。

②吴兴郡:唐太宗李世民命修《大唐氏族志》一百卷,并压制山东诸大姓士族,因此明氏位列吴兴郡七姓(湖州)之二,与姚、明、丘、钮、闻、施、沈并齐;而在《元和姓纂》之前,《新集天下姓望氏族谱》记载湖州吴兴郡出十六大姓,明氏位列第十六位。由此可见明氏在吴兴郡日渐衰微;也可以看出,明氏显人望家已迁出吴兴,居于它处。我寻找各种书籍,均不能查出吴兴明氏居住在哪县哪乡。希望族中智者见告。

③河南郡:随唐以来有明克让

(

历城侯

)

、明罕、明奉世、明恪、

明崇俨、明云腾、明质、明范、明希晋、明俊

(

平准署侯

)

等等明氏显人高官而定居。据《明崇俨传》为洛州偃师人,而明氏多位官员葬在洛阳北邙山,其私宅均在洛阳。北邙山为历代皇陵之地,秦始皇的丞相吕不韦也葬在此地,所谓千金难求一方地,而明氏有其中之七八,可见河南郡为明氏郡望也理所当然。再根椐北魏孝文帝于公元

494年迁都洛阳后改鲜卑复姓为汉字单姓,(壹斗眷氏改姓

),又命令鲜卑贵族死于洛阳,即葬于洛阳,不得还葬平城(今山西大同);同时改他们的籍贯为河南郡洛阳县人。

PS:希望可以帮到您,为您送上最美好的祝福,愿您一生平安,健康,幸福,快乐。

另外,本人在冲击问问满级,需要大量声望和经验,如果对答案,采纳时请点上“能解决”“原创”感谢您的信任与支持。

唔…不知道你是想要全部的李氏族谱还是什麼?李氏是中国第一大姓,自古至今历史悠久的李氏血脉已错综复杂,太过庞大无法以树状图表示,所以我只能简单列出李氏的直系列表,希望你不要介意:)

李氏在历史上有:一李氏门阀:1陇西李氏 2盛唐李氏

二李氏迁徙:1过江李氏 2湖广李氏 3迁台李氏

李氏得姓後的直线李系

01李利贞 02李昌祖 03李彤德

04李庆    05李承    06李硕宗

07李显    08李爽    09李环鼎

10李爵   11李寅龙   12李熙宠

13李尧性  14李辉    15李连顺

16李乾   17李耳    18李宗

19李同   20李忩    21李跻

22李恪   23李洪    24李兴族

25李昙   26李崇   27李瑶

28李信   29李超    30李仲翔

31李伯考  32李尚    33李广

34李敢   35李禹    36李丞

37李先   38李长宗   39李君况

40李本   41李次    42李轨

43李龙   44李艾    45李雍

46李柔   47李翕    48李昶

49李皓   50李歆    51李重耳

52李熙   53李天赐   54李虎

55李昺   56李渊    57李李民

58李治   59李旦    60李隆基

61李亨   62李豫    63李适

64李诵   65李纯    66李忱

67李璀   68李晔    69李祝

70李熙照  71李韬云   72李英亮

73李新成  74李训教   75李泰青

76李泳定  77李纲    78李贵

79李奎    80李孟(奇)  81李珠

82李火德

入闽始祖李火德到李登辉的直线李系表

01李火德     02李朝文(三一郎)  03李千三郎

04李三五郎    05李淑良(五三郎)  06李宏德(千五郎)

07李衍宗(大六郎) 08李德玉      09李子华

10李天禄   11李成聪      12李月辉

13李玉富  14李鉴       15李选

16李接山     17李向春      18李弘照

19李维兹     20李仕荣      21李崇文

22李兴发     23李乾聪      24李财生

25李金龙     26李登辉

入闽始祖李火德到李光耀的直线李系

01李李火德  02李三三郎   03李四六郎

04李八千郎  05李念三郎   06李万一郎

07李德明   08李守己    09李均甫

10李子显   11李仲义    12李安

13李龙珠   14李鸾     15李万孜

16李德轩   17李汝富    18李润宇

19李衍白   20李海如    21李桓若

22李崇万   23李统材    24李立斌

25李协裔   26李犹虎(云龙)  27李搌坤

28李光耀   29李显龙井   30李鹏毅

PS:上面的三个表摘录自《中华姓氏通史》

这些是我从网路上摘录下来的资料,希望能帮到你;)

用二叉树实现家谱运算

C++语言: 二叉树实现的简单家谱树/ File Name: BiTreecpp Author: Geng Lequn[glq2000@126com] ...
点击下载
上一篇:家谱图的概念下一篇:起名高手请进
热门文章
    确认删除?
    回到顶部