单链表基本操作:创建、插入、删除、获取
来源:互联网 发布:java main函数 多线程 编辑:程序博客网 时间:2024/06/03 10:39
#include <stdio.h>#include <stdlib.h>typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;//创建一个含有n个元素的单链表LNode *createList(int n){ LNode *head = NULL,*p1,*p2; for(int i=1;i<=n;i++) { p1 = (LinkList)malloc(sizeof(LNode)); if(p1==NULL) return NULL; printf("输入链表中第%d个数",i); scanf("%d",&p1->data); if(head==NULL) { head = p1; p2 = p1; }else { p2->next = p1; p2 = p1; } } p2->next = NULL; return head;}//初始化一个空链表LNode *initLink(){ LNode *head = (LNode *)malloc(sizeof(LNode)); if(head==NULL) return NULL; head->next = NULL; return head;}//打印链表void printList(LNode *head){ LNode *p = head; while(p!=NULL){ printf("%d ",p->data); p = p->next; }}//在链表第i位插入一个值LNode *insertList(LNode *head,int m,int k){ LNode *p = head; if(m==1) { LNode *q = (LNode *)malloc(sizeof(LNode)); q->data = k; q->next = head; head = q; } else { for(int i=1;i<m-1 && p!=NULL;i++) { p = p->next; } if(p==NULL) { printf("error"); exit(1); } LNode *q = (LNode *)malloc(sizeof(LNode)); q->data = k; q->next = p->next; p->next = q; } return head;}//删除链表第i个元素LNode *deleteList(LNode *head,int k){ LNode *p = head,*q; if(k==1) { q = head; head = head->next; free(q); } else { for(int i=1;i<k-1 && p!=NULL;i++){ p = p->next; } q = p->next; p->next = p->next->next; free(q); } return head;}//获得链表第i个元素值int getEleList(LNode *head, int k){ LNode *p = head; for(int i=1;i<k && p!=NULL;i++) { p = p->next; } return p->data;}int main(int argc, char *argv[]) { //创建顺序链表 LNode *head1 = createList(5); printList(head1); printf("\n") //插入元素测试 head1 = insertList(head1,3,0); printList(head1); printf("\n"); head1 = deleteList(head1,3); printList(head1); printf("\n"); head1 = deleteList(head1,1); printList(head1); printf("\n"); printf("%d",getEleList(head1,3)); printf("\n"); return 0;}
0 0
- 单链表基本操作:创建、插入、删除、获取
- 单链表的基本操作(创建、插入、删除......)
- 单链表基本操作的实现--创建、插入、查找、删除
- 单链表的基本操作_创建、查询、插入、删除
- 链表的基本操作,创建、删除、插入、反转
- 堆的基本操作:定义、创建、插入、删除、排序
- list 基本操作 1 -- 创建,插入,删除,计算长度
- Linked List的基本操作(创建/删除/插入/查找)
- 单链表的创建、插入、删除、倒置操作
- 单链表的创建、插入、删除、倒置操作
- 单链表的创建、插入、删除等操作
- 单链表的创建,插入删除等操作
- 单链表的创建、插入删除等操作
- 07单链表的一些基本操作(创建、测量、插入、打印、删除)
- 数据结构之 单链表的基本操作(创建、取值、插入、删除)
- 线性表的基本操作,包括:创建、插入、删除、查找等基本操作
- 单链表结点读取、插入、删除操作(基本操作)-C++
- 单链表操作,创建,遍历,插入,删除,排序等操作
- 史上最全最强SpringMVC详细示例实战教程
- sql 中case when then else的简单用法
- c++使用proto文件方法简介
- shell脚本下if判断的使用
- 解决前端提交数据乱码
- 单链表基本操作:创建、插入、删除、获取
- 学习记录——数据链路层(1)
- Python3 实现火车票查询工具
- IOS 第一帖关于无法拿到唯一识别码的方法
- eclipse+HBASE开发环境搭建(已实践)
- FileInputStream 相对路径正确识别
- activity和activity之间传递对象,fragment和fragment之间传递对象的方法
- java导出 world
- 增广路算法Ford-Fulkerson