From 8ecd1a86f34e13e26cdc85a124066cae8efb75a2 Mon Sep 17 00:00:00 2001 From: 24OI-bot <15963390+24OI-bot@users.noreply.github.com> Date: Wed, 17 Jul 2019 06:30:24 -0400 Subject: [PATCH] style: format markdown files with remark-lint --- docs/ds/linked-list.md | 108 ++++++++++++++++++++++++------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/docs/ds/linked-list.md b/docs/ds/linked-list.md index b6f8ac6f..40779edc 100644 --- a/docs/ds/linked-list.md +++ b/docs/ds/linked-list.md @@ -17,10 +17,10 @@ 单向链表中包含数据域和指针域,其中数据域用于存放数据,指针域用来连接当前结点和下一节点。 ```c++ - struct Node { - int value; - Node *next; - }; +struct Node { + int value; + Node *next; +}; ``` ### 双向链表 @@ -28,11 +28,11 @@ 双向链表中同样有数据域和指针域,不同之处在于指针域有左右(或上一个、下一个)之分,用来连接上一个节点、当前结点、下一个结点。 ```c++ - struct Node { - int value; - Node *left; - Node *right; - }; +struct Node { + int value; + Node *left; + Node *right; +}; ``` ## 向链表中插入(写入)数据 @@ -40,12 +40,12 @@ ### 单向链表 ```c++ - void insertNode(int i,Node *p){ - Node *node = new Node; - node->value = i; - node->next = p->next; - p->next = node; - } +void insertNode(int i, Node *p) { + Node *node = new Node; + node->value = i; + node->next = p->next; + p->next = node; +} ``` 具体过程可参考下面这张图。 @@ -57,19 +57,19 @@ 上面介绍了简单的单向链表的插入数据,有时我们会将链表的头尾连接起来将链表变为循环链表 ```c++ - void insertNode(int i,Node *p){ - Node *node = new Node; - node->value = i; - node->next = NULL; - if (p == NULL) { - p = node; - node->next = node; - } - if (p != NULL) { - node->next = p->next; - p->next = node; - } - } +void insertNode(int i, Node *p) { + Node *node = new Node; + node->value = i; + node->next = NULL; + if (p == NULL) { + p = node; + node->next = node; + } + if (p != NULL) { + node->next = p->next; + p->next = node; + } +} ``` 由于是循环的链表,我们在插入数据时需要判断原链表是否为空,为空则自身循环,不为空则正常插入数据循环。具体过程可参考下面这张图。 @@ -79,21 +79,21 @@ ### 双向循环链表 ```c++ - void insertNode(int i,Node *p){ - Node *node = new Node; - node->value = i; - if(p==NULL){ - p = node; - node->left = node; - node->right = node; - } - if(p!=NULL){ - node->left = p; - node->right = p->right; - p->right->left = node; - p->right = node; - } - } +void insertNode(int i, Node *p) { + Node *node = new Node; + node->value = i; + if (p == NULL) { + p = node; + node->left = node; + node->right = node; + } + if (p != NULL) { + node->left = p; + node->right = p->right; + p->right->left = node; + p->right = node; + } +} ``` ## 从链表中删除数据 @@ -101,23 +101,23 @@ ## 单向(循环)链表 ```c++ - void deleteNode(Node *p){ - p->value = p->next->value; - p->next = p->next->next; - } +void deleteNode(Node *p) { + p->value = p->next->value; + p->next = p->next->next; +} ``` 从链表中删除某个结点时,将 p 的下一个结点 (p->next) 的值覆盖给 p 即可,与此同时更新 p 的下下个结点。具体过程可参考下面这张图。 ![](./images/linked-list3.png) -##2. 双向循环链表 +\##2. 双向循环链表 ```c++ -void deleteNode(Node *p){ - p->value = p->right->value; - p->left->right = p->right; - p->right->left = p->left; - p = p->right; - } +void deleteNode(Node *p) { + p->value = p->right->value; + p->left->right = p->right; + p->right->left = p->left; + p = p->right; +} ``` -- 2.11.0