Tag: 单链表

采访:合并两个sorting的单一链接列表

这是一个面试书面testing中遇到的编程问题。 “你有两个已经sorting好的单链表,你必须合并它们并返回一个新列表的头部,而不会创build任何新的额外节点,返回的列表也应该sorting” 方法签名是:Node MergeLists(Node list1,Node list2); 节点类如下: class Node{ int data; Node next; } 我尝试了很多解决scheme,但没有创build额外的节点螺丝钉的东西 请帮忙。 以下是随附的博客文章http://techieme.in/merging-two-sorted-singly-linked-list/

MIPS链表

我很困惑如何在MIPS中创build结构。 我想创build一个链表实现,它计算存储的string的长度,并按照存储顺序对它们进行sorting。 这是我的代码到目前为止: # Global symbols # # string routines .globl read_string .globl strcmp .globl strlen .globl trim .globl strloop .globl replace # list routines .globl insert .globl insert_here .globl print_list .globl main # pseudo-standard library .globl get_string .globl malloc .globl print_newline .globl print_string ################################################## # Constants # .data MAX_STR_LEN: .word 50 STR_NEWLINE: .asciiz "\n" […]

如何仅使用两个指针来反转单向链表?

我会想知道是否存在一些逻辑来扭转链接列表只有两个指针。 以下用于使用三个指针(即p,q,r)来反转单个链表: struct node { int data; struct node *link; }; void reverse() { struct node *p = first, *q = NULL, *r; while (p != NULL) { r = q; q = p; p = p->link; q->link = r; } q = first; } 有没有其他的替代scheme来扭转链表? 就时间复杂性而言,扭转单链表的最佳逻辑是什么?