1111
1212
1313
14- void dlist_init (stDlistHead * dlist )
14+ void dlist_init (stDlistHead * dlist )//链表初始化
1515{
1616dlist -> size = 0 ;
1717dlist -> head = NULL ;
@@ -36,38 +36,38 @@ void dlist_destory(stDlistHead *dlist)
3636return ;
3737}
3838
39- int dlist_insert_head (stDlistHead * dlist ,stDlistNode * pNode ,int data )
39+ int dlist_insert_head (stDlistHead * dlist ,stDlistNode * pNode ,int data )//插入头结点,操作的链表,操作的节点,数据
4040{
41- if (pNode == NULL )
41+ if (pNode == NULL )//当只传递一个数据时
4242 {
43- pNode = (stDlistNode * )malloc (sizeof (stDlistNode ));
43+ pNode = (stDlistNode * )malloc (sizeof (stDlistNode ));//新建节点,为节点分配空间
4444 if (pNode == NULL )
4545 {
4646 return -1 ;
4747 }
4848 }
4949
50- pNode -> data = data ;
50+ pNode -> data = data ;
5151pNode -> prev = NULL ;
5252pNode -> next = NULL ;
5353
54- if (dlist -> size == 0 )
54+ if (dlist -> size == 0 )//如果链表长度为0,即链表当前无节点,
5555{
5656dlist -> head = pNode ;
5757dlist -> tail = pNode ;
5858}
59- else
59+ else //如果链表已有节点,则令新插入节点为头节点
6060{
6161pNode -> next = dlist -> head ;
6262dlist -> head -> prev = pNode ;
6363dlist -> head = pNode ;
6464}
6565
66- dlist -> size ++ ;
66+ dlist -> size ++ ;//每成功调用一次,链表长度+1
6767return 0 ;
6868}
6969
70- stDlistNode * dlist_remove_tail (stDlistHead * dlist )
70+ stDlistNode * dlist_remove_tail (stDlistHead * dlist )//删除尾部节点
7171{
7272stDlistNode * pNode = NULL ;
7373
@@ -139,14 +139,14 @@ stDlistNode * dlist_search(stDlistHead * dlist,int data)
139139return NULL ;
140140}
141141
142- void dlist_dump (stDlistHead * dlist )
142+ void dlist_dump (stDlistHead * dlist )//显示链表中的数据
143143{
144144int no = 0 ;
145145stDlistNode * pNode = dlist -> head ;
146- while (pNode != NULL )
146+ while (pNode != NULL )
147147{
148148printf ("\r\n [%d] = %d" ,no ++ ,pNode -> data );
149- pNode = pNode -> next ;
149+ pNode = pNode -> next ;//将pNode的下一个节点赋值给pNode,推进循环
150150}
151151
152152return ;
0 commit comments