zoukankan      html  css  js  c++  java
  • C简单实现双向链表

    <pre name="code" class="cpp">//链表结构
    typedef struct DulNode
    {
    	DataType data;    //数据
    	struct DulNode *prior;   //指向前一个节点的指针
    	struct DulNode *next;    //指向后一个节点的指针
    }DulNode;
    
    //双向链表初始化
    void InitList(DulNode **h)
    {
    	(*h) = NULL;
    }
    
    //尾插
    void PushBack(DulNode *h,DataType x)
    {
    	DulNode *p;
    	DulNode *q = h;
    	p = (DulNode*)malloc(sizeof(DulNode));
    	if(p == NULL)
    	{
    		printf("Memory is false");
    		return;
    	}
    	p->data = x;
    	q->next = p;
    	p->prior = q;
    	p->next = NULL;
    	q = p;
    }
    
    //双向连表的插入
    //void PushBack(DulLinkList h,int pos,DataType x)
    //{
    //	DulLinkList p = h->next,q;
    //	int i = 0;
    //	while(p != h && i < pos-1)
    //	{
    //		p = p->next;
    //		i++;
    //	}
    //	if( p == h && i > pos - 1)
    //	{
    //		printf("插入位置不合法
    ");
    //		return;
    //	}
    //	q = (DulLinkList)malloc(sizeof(DulNode));
    //	if(q == NULL)
    //	{
    //		printf("Memory is false");
    //		return;
    //	}
    //	q->data = x;
    //	q->prior = p->prior;
    //	p->prior->next = q;
    //	q->next = p;
    //	p->prior = q;
    //}
    
    //打印
    void Print()
    {
    	DulNode *h;
    	DulNode *p;
    	InitList(&h);
    	
    
    	p = h->next;
    	while(p)
    	{
    		printf("%d->",p->data);
    		p = p->next;
    	}
    	printf("NULL");
    }


    
       
    
    
  • 相关阅读:
    day 38
    day 37
    day 36
    day 35
    day 34
    day 33
    day 32
    day 31
    day 30
    day 29
  • 原文地址:https://www.cnblogs.com/melons/p/5791888.html
Copyright © 2011-2022 走看看