zoukankan      html  css  js  c++  java
  • 双向链表操作

    /*
    	双链表 
    */
    #include <stdio.h>
    #include <malloc.h>
    typedef int ElemType; 
    typedef struct DuLNode{
    	ElemType data;
    	struct DuLNode * prior, * next;
    }DuLNode, * DuLinkList;
    
    /*
    	获取第i个元素所在的地址 
    */
    DuLinkList GetElemP_Dul(DuLinkList L, int i){
    	DuLinkList p;
    	p = L->next;
    	int j = 1;
    	while(p && i > j){
    		p = p->next;
    		j++;
    	}
    	if(!p || j > i) return NULL;
    	return p;
    } 
    
    /*
    	双向链表的插入 
    */
    int ListInsert_Dul(DuLinkList L, int i, ElemType e){
    	DuLinkList p, s;
    	p = GetElemP_Dul(L, i);
    	if(!p)return -1;
    	s = (DuLinkList)malloc(sizeof(DuLNode));
    	s->data = e;
    	s->prior = p->prior;
    	p->prior->next = s;
    	p->prior = s;
    	s->next = p;
    	return 1;
    } 
    
    /*
    	双向链表的删除 
    */
    int ListDelete_Dul(DuLinkList L, int i, ElemType e){
    	DuLinkList p, s;
    	p = GetElemP_Dul(L, i);
    	if(!p)return -1;
    	p->prior->next = p->next;
    	p->next->prior = p->prior;
    	free(p);
    	return 1;
    }
    int main(){	
    	return 0;
    } 
    
    我亦无他,惟手熟尔
  • 相关阅读:
    QT下载速度慢的解决方法
    第七章 多态
    第六章 重复运用class
    第五章 隐藏实现细节
    代码改变世界
    第四章 初始化和清理
    第三章 控制程序流程
    module.exports和exports
    如何与外部源交互
    实现POST服务器
  • 原文地址:https://www.cnblogs.com/AsuraPlus/p/15415683.html
Copyright © 2011-2022 走看看