单链表
单链表 | 顺序存储线性表 | |
---|---|---|
分配方式 | 分散存储 | 集中存储 |
时间性能 | 查找O(n) 插入删除O(1) | 查找O(1) 插入删除O(n) |
空间性能 | 无需分配空间,元素可以无限扩充 | 分配空间,元素个数有限 |
c语言代码实现(单链表)
//
// main.c
// 线性表链式存储结构
//
// Created by Kinble Wu on 2020/3/2.
// Copyright © 2020 Kinble Wu. All rights reserved.
//
#include "include.h"
//定义节点数据类型名称
typedef int ElemType;
//定义节点数据结构
typedef struct Node{
ElemType data; //数据域
struct Node* next; //指针域
}Node;
//定义节点指针
typedef struct Node* LinkList;
//获取链表中第pos个元素
int GetElem(LinkList list,int pos){
LinkList p;
ElemType *e;
p = list->next;
int j = 1;
//进入循环,直到j==pos时,退出循环
while (p&&j<pos) {
p = p->next;
++j;
}
//判断,当到链表尾部或者j大于pos时,返回失败
if(!p||j>pos){