2242单链表的创建运算 创建单链表方法有两种:尾接法和头插法 尾接法:从空链表开始,将各结点从链表的尾部依次链 接到链表中;由于该方法是将数据元素从链表的尾部接入, 因此,需用一个变量记住当前尾结点,修改尾结点的指针 域使其指向新结点。 head a 2 k 插入的新结点成为新链表的尾结点 ak+∧ 尾结点
尾接法:从空链表开始,将各结点从链表的尾部依次链 接到链表中;由于该方法是将数据元素从链表的尾部接入, 因此,需用一个变量记住当前尾结点,修改尾结点的指针 域使其指向新结点。 2.2.4.2 单链表的创建运算 创建单链表方法有两种:尾接法和头插法。 ···· · head a1 a2 ak 尾结点 ak+1 ∧ 插入的新结点成为新链表的尾结点 p s
尾接法创建链表的具体算法 nodetype* creatL1O /建立一个头为head的带头结点的单链表 (nodetype head, * p, *s ElemType x; head=initIo; 2链表初始化 p=head /尾结点初始化为头结点* scanf(cc o/ od”,x); while(x!=-1) {s=( nodetype*) malloc( sizeof(nodetype);/申请新结点空间* s->data=x;/*给新结点的数据域赋值* s->next=NULL;/*将新结点的指针域初始化为空* p>next=s;/将新结点链接到表尾* p=s;/新结点成为新链表的尾结点* scanf(“d”,&x); return head
nodetype* creatL1() /*建立一个头为head的带头结点的单链表*/ {nodetype *head,*p,*s; ElemType x; head=initl(); /*链表初始化*/ p=head; /*尾结点初始化为头结点*/ scanf(“%d”,&x); while(x!=-1) {s=(nodetype*)malloc(sizeof(nodetype));/*申请新结点空间*/ s->data=x;/*给新结点的数据域赋值*/ s->next=NULL;/*将新结点的指针域初始化为空*/ p->next=s; /*将新结点链接到表尾*/ p=s; /*新结点成为新链表的尾结点*/ scanf(“%d”,&x); } return head; } ▪ 尾接法创建链表的具体算法
2242单链表的创建运算 创建单链表方法有两种:尾接法和头插法。 头插法:将数据元素依次插到链表头结点的后面。头插法建立的链 表元素的输入顺序与在链表中的顺序相反。 head a 1 ∧
头插法: 将数据元素依次插到链表头结点的后面。头插法建立的链 表元素的输入顺序与在链表中的顺序相反。 head a1 ∧ 2.2.4.2 单链表的创建运算 创建单链表方法有两种:尾接法和头插法
2242单链表的创建运算 创建单链表方法有两种:尾接法和头插法。 头插法:将数据元素依次插到链表头结点的后面。头插法建立的链 表元素的输入顺序与在链表中的顺序相反。 head a 1 ∧ 申请新结点空间并对其 数据域进行初始化 新结点
头插法: 将数据元素依次插到链表头结点的后面。头插法建立的链 表元素的输入顺序与在链表中的顺序相反。 head a1 ∧ 2.2.4.2 单链表的创建运算 创建单链表方法有两种:尾接法和头插法。 a2 新结点 申请新结点空间并对其 数据域进行初始化 S
2242单链表的创建运算 创建单链表方法有两种:尾接法和头插法。 头插法:将数据元素依次插到链表头结点的后面。头插法建立的链 表元素的输入顺序与在链表中的顺序相反。 head a1∧ 给新结点的指针域赋值为 链表首元结点的地址 新结点
头插法: 将数据元素依次插到链表头结点的后面。头插法建立的链 表元素的输入顺序与在链表中的顺序相反。 head a1 ∧ 2.2.4.2 单链表的创建运算 创建单链表方法有两种:尾接法和头插法。 a2 新结点 S 给新结点的指针域赋值为 链表首元结点的地址