当前位置:   article > 正文

数据结构面试题总结9——链表:基础操作_链表结构面试

链表结构面试

链表部分的操作无其他说明时,都用此篇文章定义的方法。


链表无特殊说明都为单链表,节点的定义如下

  1. typedef struct node
  2. {
  3. int data;
  4. node* pNext;
  5. }Node;

创建一个结点,也可以用来创建链表头

  1. Node* createNodeList()
  2. {
  3. Node *head = new Node;
  4. if(NULL == head)
  5. {
  6. return NULL;
  7. }
  8. else
  9. {
  10. head->data = -1;
  11. head->pNext = NULL;
  12. return head;
  13. }
  14. }
 增加结点 
  1. bool addNode(Node* head, Node* node)
  2. {
  3. if(NULL == head)
  4. {
  5. return false;
  6. }
  7. Node* p = head->pNext;
  8. Node* q = head;
  9. while(NULL != p)
  10. {
  11. q = p;
  12. p = p->pNext;
  13. }
  14. q->pNext = node;
  15. node->pNext = NULL;
  16. return true;
  17. }

插入结点

  1. bool insertNode(Node *before, Node *node)
  2. {
  3. if (NULL == before || NULL == node)
  4. {
  5. return false;
  6. }
  7. node->next = before->next;
  8. before->next = node;
  9. return true;
  10. }

删除结点(删除before结点后的结点,这里只是一个删除的例子)

  1. bool deleteNode(Node *before)
  2. {
  3. if (NULL == before || NULL == node)
  4. {
  5. return false;
  6. }
  7. Node *p = before->next;
  8. before->next = p->next;
  9. delete p;
  10. return true;
  11. }


声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号