首页 > TAG信息列表 > A1133
PAT(Advanced Level)A1133. Splitting A Linked List
题意 要让链表里的所有负数的结点排在非负数的前面,以及让所有的[0, K]的数字放在(k, ∞)的前面,而且要保持相对顺序不变。保证链表不为空 思路 依次遍历链表的每个结点进行标记,第一趟取出负数,第二趟取出[0, K]内的数字,第三趟取出剩下没有取的数字,标记的方式是令data = 100010,已知dPAT A1133 Splitting A Linked List (25 分) 链表
题目大意:给出N个节点的信息以及头节点地址,要求将构成的链表按照数据小于0的,数据在[0,K]之间的,和数据大于K的分成三段输出,并且三段内的节点仍保留在原链表中的相对位置。 常规的静态链表问题。遍历原链表的同时将节点放入对应的vector中,最后将三个vector再重新组合A1133 Splitting A Linked List (25 分| 链表,附详细注释,逻辑分析)
写在前面 思路分析 理解题意 给1个链表和K,遍历链表后将<0的结点先输出,再将0~k区间的结点输出,最后输出>k的结点 具体实现: 1.所有节点用结构体{id, data, next}存储 2.遍历链表,找出在此链表中的节点,放入容器器v中 3.把节点分三类{(-⽆无穷, 0) , [0,k], (k,+⽆无穷) } ,按段、按PAT A1133 Splitting A Linked List
PAT A1133 Splitting A Linked List Sample Input: 00100 9 10 23333 10 27777 00000 0 99999 00100 18 12309 68237 -6 23333 33218 -4 00000 48652 -2 -1 99999 5 68237 27777 11 48652 12309 7 33218 Sample Output: 33218 -4 68237 68237 -6 48652 48652 -2 12309 12