ldjhust

工欲善其事 必先利其器

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年4月24日

摘要: 一个链表,节点里面的内容是字符串,如a->b->c->d->e,要求返回链表如下abcde->bcde->cde->de->e数据结构:1 struct NODE2 {3 char str[50];4 5 NODE *next;6 };首先直观的考虑可以用一个两层循环,时间复杂度O(n^2),当然这个效率是不被接受的 1 NODE *Linked(NODE *head) 2 { 3 assert (head != NULL); 4 5 for (NODE *p1 = head->next; p1 != NULL; p1 = p1->n 阅读全文
posted @ 2013-04-24 22:47 ldjhust 阅读(157) 评论(0) 推荐(0) 编辑

摘要: 单向链表的反转分两种情况,一种是带头结点的单向链表的反转,另一种是不带头结点的单向链表的反转一、不带头结点的单向链表的反转 不带头结点的单向链表反转需要三个指针,一个指针存储当前节点,一个存储当前节点的前一个节点,最后一个指针存储当前节点的下一个指针,每次反转当前节点的指针指向,一次往后遍历链表。 1 NODE *ReverseWithouHead(NODE *&head) 2 { 3 assert (head != NULL); 4 5 // 不带头结点的单向链表的反转 6 7 if (NULL == (head->next)) 8 { 9 ... 阅读全文
posted @ 2013-04-24 16:15 ldjhust 阅读(311) 评论(0) 推荐(0) 编辑