IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> c2.LinerList(DLinkList) -> 正文阅读

[大数据]c2.LinerList(DLinkList)

DLinkList

/*链式存储(双链表)*/
#include <cstdio>
#include <stdlib.h>
#include <iostream>
using namespace std;
typedef int Elemtype;

typedef struct DNode
{
    int ListLength;
    Elemtype data;
    DNode *prior;
    DNode *next;
}DNode,*DLinkList;

bool InitList(DLinkList &L)//初始化双链表
{
    L=new DNode;
    if(L==NULL){return false;}
    L->next=NULL;
    L->prior=NULL;
    return true;
}

bool GetElem(DLinkList L,int i,Elemtype &e)//双链表按节点取值
{
    DLinkList p=new DNode;
    p=L->next;
    int j=1;
    while(p&&j<i)//只到i-1位
    {
        p=p->next;
        ++j;
    }
    if(!p||j>i){return false;}
    e=p->data;
    return true;
}
DNode *LocateElem(DLinkList L,Elemtype e)//双链表按值查找,返回该节点
{
    DNode *p=new DNode;
    p=L->next;
    while(p && p->data!=e)
    {
        p=p->next;
    }
    return p;

}
bool ListInsert(DLinkList &L,int i,Elemtype e)
{
    Elemtype t;
    if(!GetElem(L,i,t)){return false;}//if合法判断
    DLinkList pl=new DNode;
    pl=L;int j=0;
    while(j<i-1)//到i-1
    {
        pl=pl->next;
        j++;
    }
    DLinkList temp=new DNode;
    temp->data=e;
    temp->next=pl->next;
    temp->prior=pl;
    pl->next=temp;
    temp->next->prior=temp;
    L->ListLength++;
    return true;
}
bool ListDelete(DLinkList &L,int i)
{
    Elemtype t;
    if(!GetElem(L,i,t)){return false;}//if合法判断
    DLinkList p=new DNode;int j=0;
    p=L;
    while(j<i-1)
    {
        p=p->next;
        j++;
    }
    DLinkList temp=new DNode;
    temp=p->next;
    p->next=temp->next;
    temp->next->prior=p;
    L->ListLength--;
    return true;
}

void CreateList(DLinkList &L,int i)//正序输入创建双链表
{
    DLinkList r=new DNode;
    r=L;
    for(int j=0;j<i;j++)
    {
        DLinkList p =new DNode;
        cin >> p->data;
        p->next=NULL;p->prior=r;r->next=p;
        r=p;
    }
    L->ListLength=i;
}
void UnionList(DLinkList &LA,DLinkList &LB,DLinkList &LC)//双链表的连接
{
    LC=LA;
    DLinkList p=new DNode;
    p=LA->next;
    while(p->next!=NULL)
    {
        p=p->next;
    }
    p->next=LB->next;
    LB->next->prior=p;
    LC->ListLength=LA->ListLength+LB->ListLength;
}
void PrintList(DLinkList L)
{
    DLinkList p=L;
    while(p->next!=NULL)
    {
        p=p->next;
        cout << p->data << " ";
    }
    cout << endl;
}


int main()
{
    DLinkList t,t1,t2;
    InitList(t);InitList(t1);InitList(t2);
    CreateList(t,5);CreateList(t1,5);
    PrintList(t);PrintList(t1);
    UnionList(t,t1,t2);
    PrintList(t2);
    //Elemtype TEMP;
    //GetElem(t,3,TEMP);
    //cout<<"third:" <<TEMP << endl;
    //DNode *pl=LocateElem(t,4);
    //if(pl){cout <<pl->data<<endl;}
    //Elemtype insert_var=8;
    //ListInsert(t,3,insert_var);
    //PrintList(t);
    //ListDelete(t,3);
    //PrintList(t);

    return 0;


}

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-04 13:30:42  更:2021-12-04 13:32:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:03:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码