栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言单链表的增删操作

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言单链表的增删操作

知识整理:

1、顺序表的链式存储又称链表;

2、链表中每个元素的内存空间不连续,中间使用指针链接;

3、定义两种结构体:

1)结点

typedef struct node{
    int data;
    struct node *next;
}Node;

2)单链表

typedef struct list{
    struct node *head;
    int size;//单链表长度
}List;

代码展示:

#include
#include
//单链表
//结构体
typedef struct node{
    int data;//结点数据域
    struct node *next;//结点指针域
}Node;
typedef struct list{
    struct node *head;//单链表头节点
    int size;//单链表长度
}List;
//获取新结点
Node *get_new_node(int x){
    Node *p=(Node *)malloc(sizeof(Node));
    p->data=x;
    p->next=NULL;
    return p;
}
//初始化结构体
List *init_list(){
    List *p=(List *)malloc(sizeof(List));
    p->head=get_new_node(0);
    p->size=0;//元素数量为0
    return p;
}
//删除结构体
void delete_list(List *p){
    Node *q=p->head;
    while(q!=NULL){
        Node *t=q;
        q=q->next;
        free(t);//释放t指向的空间
    }
    free(p);
}

//插入元素
int insert(List *l,int ind,int x){//ind是待插入的位置
    if(l->sizehead;
    for(int i=0;inext;//找到插入位置
    Node *t=get_new_node(x);
    t->next=p->next;
    p->next=t;
    l->size++;//元素加一
    return 0;
}
//删除元素
int delete(List *l,int ind){
    if(ind>=l->size)
      return 1;//删除位置不合理
      Node *p=l->head;
    for(int i=0;inext;
    Node *t=p->next;
    p->next=t->next;
    free(t);
    l->size--;//元素减一
    return 0;
}
//打印结点
void show(List *l){
    printf("元素个数:%dn",l->size);
    for(Node *p=l->head->next;p!=NULL;p=p->next){
        printf("%d ",p->data);
    }
    printf("n");
}
int main(){
    int n;
    printf("请输入增删操作总次数: ");
    scanf("%d",&n);
    List *N=init_list();//初始化链表
    show(N);
    for(int i=0;i 

运行结果:

请输入增删操作总次数: 6
元素个数:0

**************************
请输入选择符(增:1;删:0): 1
请输入插入的元素和位置:5 1
插入位置不合理!
元素个数:0

**************************
请输入选择符(增:1;删:0): 1
请输入插入的元素和位置:5 0
元素个数:1
5 
**************************
请输入选择符(增:1;删:0): 1
请输入插入的元素和位置:9 1
元素个数:2
5 9 
**************************
请输入选择符(增:1;删:0): 1
请输入插入的元素和位置:4 1
元素个数:3
5 4 9 
**************************
请输入选择符(增:1;删:0): 0
请输入删除元素的位置:0
元素个数:2
4 9 
**************************
请输入选择符(增:1;删:0): 0
请输入删除元素的位置:2
删除位置不合理!
元素个数:2
4 9 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/976442.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号