DataStructure_第二章 线性表 ( 单链表 / 循环链表 / 双向链表 及 静态链表 的分析及其实现 )

本文介绍了线性表的基本概念和抽象数据类型定义,深入探讨了线性表的顺序存储和链式存储。在链式存储部分,详细讲解了单链表、循环链表和双向链表,包括它们的插入、删除等操作。此外,文章还提及静态链表,但未展开详细内容,并提供了单链表置换和一元二次多项式相加的应用实例。
摘要由CSDN通过智能技术生成









0x0000 线性表的概念及抽象数据类型定义

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述













0x0001 线性表的顺序存储

在这里插入图片描述

在这里插入图片描述













0x0010 线性表的链式存储



1. 单链表

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

亲自调试了一遍, 问题已经修改, 如果还有bug欢迎路过的大佬指正!

/*** 
 * @Author      : acmaker
 * @Date        : 2020-03-10 11:33:03
 * @LastEditTime: 2020-03-16 14:14:51
 * @FilePath    : \myCPlusPlusCode\DataStructure\LinearList\SingalLinkedList.cpp
 * @Website     : http://csdn.acmaker.vip
 * @Description : 
 */



#include <bits/stdc++.h> 
using namespace std; 
#define rg register 
#define sc scanf 
#define pf printf 
typedef long long ll; 

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0

// 线性表的链式存储结构
typedef char ElemType;
typedef struct Node {
   
    ElemType data;
    Node* next;
}Node, *LinkedList;
LinkedList L;

long long ListLength ( LinkedList L );
void InitList ( LinkedList *L );
void CreateFromHead ( LinkedList L );
void CreateFromTail ( LinkedList L );
Node* Get ( LinkedList L, long long pos );
Node* Locate ( LinkedList L, ElemType key );
int InsList ( LinkedList L, int pos, ElemType e );
int DelList ( LinkedList L, int pos, ElemType *e );
void DestroyList ( LinkedList L );
void reverseList ( LinkedList );


int main ( ) {
     // freopen( "F:\\in\\.txt" , "r" , stdin ); 

    InitList( &L );

    // CreateFromHead( L );

    CreateFromTail( L );

    cout << Get( L, 3 )->data << endl;

    cout << Get( L, 2 )->data << endl;

    cout <<  Locate( L, '3' ) << endl;

    cout << InsList( L, 1, '8' ) << endl;

    ElemType backup;
    cout << DelList( L, 1, &backup ) << endl;

    DestroyList( L );
    

    return 0 ; 
} 

// 代码实现.

/***
 * @description: 计算带头结点的单链表 长度
 * @param :
 * @return:
 */
long long ListLength ( LinkedList L ) {
   
    Node *p = L->next;
    long long i;
    for ( i = 0; p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值