以下为本人在大一时阅读《C++ Primer Plus》中关于链表的章节所做的笔记
链表
链表内元素结构:
struct node
{ int data ; node * next ; } ;
链表的起始元素:
node * head ;
链表的创建函数:
node * CreateList()
{ node * s, * p ;
s = new node ;
cin >> s->data ;
head = NULL ;
while ( s->data != 0 )//当输入0的时候结束创建过程
{ if ( head == NULL ) head = s ;
else p->next = s ;
p = s ;
s = new node ;
cin >> s->data ;
}
p -> next = NULL ;
delete s ;
return ( head ) ;
}
链表的插入元素:
1.在开头插入元素:
s -> next = head ;
head = s ;
2.在指针p后面插入一个元素:
s -> next = p -> next ;
p -> next = s ;
3.在指针p前面插入一个元素:
方式一:找到指向p的指针q,然后在q后插入元素
方式二:在p后插入元素,然后交换p和新插入的元素
t = p -> data ;
p -> data = s-> data;
s-> data = t ;
删除链表的第一个元素:
p = head ;
head = head->next ;
delete p ;
删除链表中的元素p:
先找到指向p的指针
q->next = p->next ;
delete p ;