• list


    #include<cstdio>
    #include<cstdlib>
    using namespace std;
    typedef struct ListNode{
    	int data;
    	ListNode* pre;
    	ListNode* nxt;
    }List;
    int length;
    
    List* CreateList(int len)
    {
    	List* ret=(List*)malloc(sizeof(List));
    	List* tail=ret;
    	ret->pre=ret,ret->nxt=ret,ret->data=1;
    	for(int i=2;i<=len;i++)
    	{
    		List* newnode=(List*)malloc(sizeof(List));
    		newnode->data=i,
    		tail->nxt=newnode,newnode->pre=tail,newnode->nxt=ret,tail=newnode;
    	}
    	ret->pre=tail;
    	length=len;
    	return ret;
    }
    void Delete(List* pos)
    {
    	pos->pre->nxt=pos->pre;
    	pos->nxt->pre=pos->nxt;
    	free(pos);
    	length--;
    }
    List* JumpToItem(List* list,int n)
    {
    	if(n==0) return list;
    	while(n--)
    		list=list->nxt;
    	return list;
    }
    void Print(List* list)
    {
    	printf("%d ",list->data);
    	for(int i=2;i<=length;i++)
    	{
    		list=list->nxt;
    		printf("%d ",list->data);
    	}
    	printf("
    ");
    }
    void InsertAft(List* pos,int data)
    {
    	List* newnode=(List*)malloc(sizeof(newnode));
    	newnode->data=data,
    	newnode->pre=pos,newnode->nxt=pos->nxt,pos->nxt=newnode;
    	length++;
    }
    void InsertBef(List* pos,int data)
    {
    	pos=pos->pre;
    	InsertAft(pos,data);
    }
    int main()
    {
    	List* list=CreateList(15);
    	Print(list);
    	Delete(list);
    	Print(JumpToItem(list,1));
    	InsertAft(list,233);
    	Print(JumpToItem(list,1));
    	InsertBef(JumpToItem(list,2),2333);
    	Print(JumpToItem(list,1));
    	return 0;
    }
    

      

    #include<cstdio>
    #include<cstdlib>
    using namespace std;
    typedef struct ListNode{
        ListNode* pre;
        ListNode* nxt;
        int data;
    }List;
    int length;
    List* head;
    List* tail;
    inline List* CreateList(int len)
    {
        length=len;
        List* ret=(List*)malloc(sizeof(List));
        ret->data=1;
        head=ret,tail=ret;
        for(int i=2;i<=len;i++)
        {
            List* newnode=(List*)malloc(sizeof(List));
            newnode->data=i,newnode->nxt=head,tail->nxt=newnode,newnode->pre=tail,tail=newnode;
        }
        ret->pre=tail;
        return ret;
    }
    inline void Print()
    {
        int len=length;
        List* node=head;
        while(len--)
        {
            printf("node: %d, pre: %d, nxt: %d, data: %d
    ",node,node->pre,node->nxt,node->data);
            node=node->nxt;
        }
    }
    inline List* JumpToItem(int pos)
    {
        List* ret=head;
        while(pos--)ret=ret->nxt;
        return ret;
    }
    inline void Delete(List* elem)
    {
        elem->pre->nxt=elem->nxt;
        elem->nxt->pre=elem->pre;
        if(elem==head)head=elem->nxt;
        if(elem==tail)tail=elem->pre;
        length--;
        free(elem);
    }
    inline void InsertAft(List* pos,int data)
    {
        List* newnode=(List*)malloc(sizeof(List));
        newnode->data=data;
        newnode->pre=pos,newnode->nxt=pos->nxt;
        pos->nxt=newnode,pos->nxt->pre=newnode;
        if(pos==tail)tail=newnode;
        length++;
    }
    inline void InsertBef(List* pos,int data)
    {
        List* newnode=(List*)malloc(sizeof(List));
        InsertAft(pos->pre,data);
        if(newnode==head)head=newnode;
    }
    int main()
    {
        List* list=CreateList(20);
        Print();
        InsertBef(list,2333);
        Print();
    }
    #include<cstdio>
    #include<cstdlib>
    #include<windows.h>
    using namespace std;
    struct Linker
    {
        typedef struct ListNode
        {
            ListNode* pre;
            ListNode* nxt;
            int data;
        } List;
        int length;
        List* head;
        List* tail;
        inline void CreateList(int len)
        {
            length=len;
            List* ret=(List*)malloc(sizeof(List));
    		ret->data=1;
            head=ret,tail=ret;
            for(int i=2; i<=len; i++)
            {
                List* newnode=(List*)malloc(sizeof(List));
                newnode->data=i,newnode->nxt=head,tail->nxt=newnode,newnode->pre=tail,tail=newnode;
            }
            ret->pre=tail;
        }
        inline void Print()
        {
            int len=length;
            List* node=head;
            while(len--)
            {
                printf("node: %d, pre: %d, nxt: %d, data: %d
    ",node,node->pre,node->nxt,node->data);
                node=node->nxt;
            }
        }
        inline List* JumpToItem(int pos)
        {
            List* ret=head;
            while(pos--)ret=ret->nxt;
            return ret;
        }
        inline void Delete(List* elem)
        {
            elem->pre->nxt=elem->nxt;
            elem->nxt->pre=elem->pre;
            if(elem==head)head=elem->nxt;
            if(elem==tail)tail=elem->pre;
            length--;
            free(elem);
        }
        inline void InsertAft(List* pos,int data)
        {
            List* newnode=(List*)malloc(sizeof(List));
            newnode->data=data;
            newnode->pre=pos,newnode->nxt=pos->nxt;
            pos->nxt=newnode,pos->nxt->pre=newnode;
            if(pos==tail)tail=newnode;
            length++;
        }
        inline void InsertBef(List* pos,int data)
        {
            List* newnode=(List*)malloc(sizeof(List));
            newnode->data=data;
            newnode->pre=pos->pre,newnode->nxt=pos;
            pos->pre=newnode,newnode->pre->nxt=newnode;
            if(pos==head)head=newnode;
            length++;
        }
    };
    Linker List;
    int main()
    {
        List.CreateList(1000000);//25M. 
        return 0;
    }
    

      

  • 相关阅读:
    json
    mybatis 一对一关联对象查询
    下拉框多级联动
    时间轴和操作元素属性
    上传
    多选框获取和全选
    字符串操作,截取最后一个逗号
    idea快捷键使用
    获取下拉框的文本和值,下拉框默认选中
    toString()函数分析
  • 原文地址:https://www.cnblogs.com/TheRoadToAu/p/8012755.html
Copyright © 2020-2023  润新知