第二章目录
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