双栈+有序表组合设计:浏览器历史系统完整实现

作者头像 青和
2025-02-22 00:00:00
237 阅读
文章封面

双栈+有序表组合设计:浏览器历史系统完整实现

系统架构设计

结合双栈和有序表的优势,我们可以构建一个功能完整的浏览器历史系统。双栈负责快速的前进后退操作,有序表负责高效的历史记录查询和排序。

核心数据结构设计


import time
from collections import deque

class AdvancedBrowserHistory:
    def __init__(self):
        self.back_stack = deque()      # 后退栈
        self.forward_stack = deque()   # 前进栈
        self.ordered_history = OrderedHistory()  # 有序表
        self.current_page = None
        self.page_frequency = {}       # 页面访问频率
    
    def visit(self, url):
        """访问新页面"""
        timestamp = time.time()
        
        # 双栈操作
        if self.current_page:
            self.back_stack.append(self.current_page)
        self.current_page = url
        self.forward_stack.clear()
        
        # 有序表操作
        self.ordered_history.insert(url, timestamp)
        
        # 更新访问频率
        self.page_frequency[url] = self.page_frequency.get(url, 0) + 1
    
    def get_recent_pages(self, count=10):
        """获取最近访问的页面"""
        return self.ordered_history.get_recent(count)
    
    def get_frequent_pages(self, count=10):
        """获取最常访问的页面"""
        return sorted(self.page_frequency.items(), 
                     key=lambda x: x[1], reverse=True)[:count]

性能优化策略

通过缓存机制和延迟加载,可以进一步优化系统性能。对于大量历史记录,可以采用分页加载和索引优化。

评论区