zoukankan      html  css  js  c++  java
  • [置顶] 数据结构之 双链表的创建,删除,插入

    数据结构中的双链表的实现

    // 双链表.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "malloc.h"
    #define maxSize 100 
    
    //双链表结构
    typedef struct DLNode
    {
    	int data;
    	struct DLNode *prior;
    	struct DLNode *next;
    }DLNode;
    //尾插法创建链表
    void CreateDLNodeR(DLNode *&L,int a[],int n)
    {
    	DLNode *p,*s;
    	L=(DLNode*)malloc(sizeof(DLNode));
    	L->prior=NULL;
    	L->next=NULL;
    	p=L;
    	for(int i=0;i<n;i++)
    	{
    		s=(DLNode*)malloc(sizeof(DLNode));
    		s->data=a[i];
    
    		p->next=s;
    		s->prior=p;
    		p=p->next;//p=s
    	}
    	p->next=NULL;
    }
    //头插法创建链表
    void CreateDLNodeF(DLNode *&L,int a[],int n)
    {
    	DLNode *p,*s;
    	L=(DLNode*)malloc(sizeof(DLNode));
    	L->prior=NULL;
    	L->next=NULL;
    	for(int i=0;i<n;i++)
    	{
    		s=(DLNode*)malloc(sizeof(DLNode));
    		s->data=a[i];
    		
    		s->prior=L;
    		s->next=L->next;
    		L->next=s;
    	}
    }
    //插入节点 在locate位置 插入x
    void LNodeInsert(DLNode *&L,int locate,int x)
    {
    	DLNode *p=L,*s;
    	int j=0;
    	while(p->next!=NULL&&j<locate-1)
    	{
    		p=p->next;
    		j++;
    	}
    	s=(DLNode*)malloc(sizeof(DLNode));
    	s->data=x;
    
    	s->next=p->next;
    	s->prior=p;
    	p->next=s;
    	
    }
    void LNodeDel(DLNode *&L,int locate)
    {
    	DLNode *p=L,*q;
    	int j=0;
    	while(p->next!=NULL&&j<locate-1)
    	{
    		p=p->next;
    		j++;
    	}
    	q=p->next;
    	p->next=q->next;
    	free(q);
    	
    }
    void show(DLNode *L)
    {
    	DLNode *p=L->next;
    	while(p!=NULL)
    	{
    		printf("%d ",p->data);
    		p=p->next;
    	}
    }
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	DLNode *L;
    	int a[]={0,1,2,3,4,5,6,7,8,9};
    	CreateDLNodeR(L,a,10);
    	LNodeInsert(L,1,-1);
    	LNodeInsert(L,1,-2);
    	LNodeDel(L,1);
    	LNodeInsert(L,10,-8);
    	show(L);
    }
    
    


    以上代码实现了,双链表的操作

  • 相关阅读:
    哈希算法(Hash Algorithm)初探
    一本计划中的WPF图书目录
    php中关于mysqli和mysql区别的一些知识点整理
    PHP Plurk Api基�教�(一)
    Wordpress 去除重复评论限制
    [share]PDO操作MySql类
    PHP处理文件(转载)
    PHP 取得某天前后N天的日期
    源码搭建LAMP服务器
    PHP ��/日期操作��
  • 原文地址:https://www.cnblogs.com/zhujunxxxxx/p/3344863.html
Copyright © 2011-2022 走看看