【数据结构】2-3-4 单链表的建立
数据结构知识点合集
- 尾插法建立单链表
建立链表时总是将新节点插入到链表的尾部,将新插入的节点作为链表的尾节点
|
/*尾插法建立链表L*/ LinkList List_TailInsert(LinkList &L) { int x; /*建立头节点*/ L = (LNode *)malloc(sizeof(LNode)); /*s为新插入的节点,r始终指向表尾节点*/ LNode *s,*r=L; scanf("%d",&x); while(x!=9999) { /*为插入节点分配空间*/ s = (LNode *)malloc(sizeof(LNode)); /*将输入值赋给新节点数据域*/ s->data = x; /*链表表尾节点指针域指向新插入节点*/ r->next = s; /*新插入节点为新的尾节点*/ r = s; scanf("%d",&x); } /*尾节点的指针域置空*/ r->next = NULL; return L; } |
- 头插法建立单链表
建立链表时总是将新节点插入到链表的头部,将新插入的节点作为链表的头节点
|
/*头插法建立链表L*/ LinkList List_HeadInsert(LinkList &L) { int x; /*建立头节点,并初始化链表为空*/ L = (LNode *)malloc(sizeof(LNode)); L->next = NULL; /*s为新插入的节点*/ LNode *s; scanf("%d",&x); while(x!=9999) { /*为新插入节点分配空间*/ s = (LNode *)malloc(sizeof(LNode)); /*将输入数据赋给新节点*/ s->data = x; /*新节点的指针域指向第一个节点*/ s->next = L->next; /*将新节点作为头节点*/ L->next = s; scanf("%d",&x); } return L; } |