美文网首页
链表应用

链表应用

作者: easy_luo | 来源:发表于2020-02-23 12:42 被阅读0次

    链表的应用:常用于播放器,边播放边下载的场景,播放和下载的内容是存储在不同的地址块,通过链表的 next 找到下一个需要加载地址的内容。

    疑问?如何辨别流媒体没有被串改过?

    struct LYNode {
        int data;
        struct LYNode *next;
    };
    
    @interface LYReverseList : NSObject
    //链表反转
    struct LYNode *reverseList(struct LYNode *head);
    //构造一个链表
    struct LYNode *contructList(void);
    //打印链表中的数据
    void ly_printList(struct LYNode *head);
    //释放链表数据
    void deleteList(struct LYNode *head);
    
    @end
    
    @implementation LYReverseList
    
    struct LYNode *reverseList(struct LYNode *head){
        
        //定义遍历指针,初始化为头节点
        struct LYNode *p = head;
        //反转后的链表头部
        struct LYNode *newH = NULL;
        
        while (p != NULL) {
            //记录下一个节点(第二个节点)
            struct LYNode *temp = p->next;
            //当前节点新链表头部 NULL
            p->next = newH;
            //更改链表头部节点为当前节点
            newH = p;
            //移动 p 指针
            p = temp;
        }
        
        return newH;
    }
    
    struct LYNode *contructList(void){
        //头结点定义
        struct LYNode *headNode = NULL;
        //指向当前节点
        struct LYNode *curNode = NULL;
        for (int i = 0; i < 5; i++){
            struct LYNode *newNode = malloc(sizeof(struct LYNode));
            newNode->data = i;
            //头结点为空,新节点即为头结点
            if (headNode == NULL) {
                headNode = newNode;
            }else{
                //当期节点的next为新节点
                curNode->next = newNode;
            }
            //设置当前节点为新节点
            curNode = newNode;
        }
        return headNode;
    }
    
    void ly_printList(struct LYNode *head){
        //定义遍历指针,初始指向头结点
        struct LYNode *p = head;
        while (p != NULL) {
            printf("%d ",p->data);
    //        NSLog(@"结点数据:%d",p->data);
            p = p->next;
        }
    }
    
    void deleteList(struct LYNode *head){
        struct  LYNode *p = head;
        while (p != NULL) {
    //        delete(p);
            free(p);
            p = p->next;
        }
    }
    
    @end
    

    相关文章

      网友评论

          本文标题:链表应用

          本文链接:https://www.haomeiwen.com/subject/uofjqhtx.html