数据结构与算法分析----单链表增加 删除 查找 求表长 判空 逆置 合并 链接

本文介绍了使用C语言实现单链表的基本操作,包括初始化、插入元素、删除元素、计算长度、搜索元素、逆置链表、合并两个有序链表以及链接两个链表。提供了详细的代码实现和交互式菜单供用户进行操作,适合学习数据结构和链表操作。
  • 逆置采用头插法逆置

-2022.3.15 更新编码风格,新增单链表合并、单链表链接功能

#include <stdio.h>
#include <stdlib.h>

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

node* linkedlist_init();
void linkedlist_destory(node* head);
int linkedlist_insert(node* head, int pos, int x);
int linkedlist_delete(node* head, int pos, int* x);
void linkedlist_print(node* head);
int linkedlist_size(node* head);
int linkedlist_search(node* head, int x);
void linkedlist_reverse(node* head);
void linkedlist_link(node* head, node* head2);
void linkedlist_merge(node* h1, node* h2);

int main(){
   
   
    node* head = linkedlist_init();//初始化
    int max, i, value;
    printf("输入元素个数:");
    scanf("%d", &max);
    printf("数据:");
    for (i = 0; i < max; i++){
   
   
        scanf("%d", &value);
        linkedlist_insert(head, 1, value);
    }
    
    linkedlist_reverse(head);
    linkedlist_print(head);   
    int choice;
    while (1){
   
   
        printf("1)插入元素\n");
        printf("2)删除元素\n");
        printf("3)求表长\n");
        printf("4)查找数据\n");
        printf("5)单链表逆置\n");
        printf("6)打印当前单链表\n");
        printf("7)将当前单链表与另一单链表合并\n");
        printf("8)将另一单链表与当前单链表链接\n");
        print
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unagi -_-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值