数据结构之 单链表的基本操作(创建、取值、插入、删除)
来源:互联网 发布:淘宝ashford代购水深 编辑:程序博客网 时间:2024/06/08 14:23
单链表的基本操作,创建、取值、插入、删除结点。
#include<stdio.h>#include<stdlib.h>#include<stdbool.h>typedef struct LNode{ int data; struct LNode* next;}LNode, *Linklist;//-------------------头插法建立单链表--------------------------Linklist CreatList1(Linklist L){ LNode* s; int x; L= (Linklist)malloc(sizeof(LNode)); L->next=NULL; for(x=1;x<=20;x++) { s=(LNode*)malloc(sizeof(LNode)); s->data=x; s->next=L->next; L->next=s; } return L;}//------------------返回第i个位置上的结点元素----------LNode* GetElem(Linklist LL,int i){ LNode* s=LL; while(i) { s=s->next; i--; } return s;}//------------------按值查找结点-----------------------LNode* LocalElem(Linklist LL,int xx){ LNode* s=LL->next; while(s) { if(s->data==xx) return s; s=s->next; }}//--------------------插入结点---------------------void InsertNode(Linklist LL,int i,LNode* ss){ LNode* s=(LNode*)malloc(sizeof(LNode)); s=ss; LNode* p=LL; p=GetElem(LL,i-1); s->next=p->next; p->next=s;}//------------------删除结点---------------------void DeleteNode(Linklist LL,int i){ LNode* p=LL; LNode* q=NULL; p=GetElem(LL,i-1); q=p->next; p->next=q->next; free(q);}void printLinkList(Linklist LL){ LNode* s=LL->next; int i=1; do { printf("%d ",s->data); s=s->next; i++; }while(s); printf("\n\n\n");}int main(){//--------------------创建单链表---------------------------------- Linklist LL; LL=CreatList1(LL); printLinkList(LL);//--------------------查找值为3的结点----------------------------- LNode* ss; ss=LocalElem(LL,3); printf("查找到值为%d的结点\n",ss->data); printf("\n\n\n");//-------------在链表第三个位置插入结点sss-------------------- LNode* sss=(LNode*)malloc(sizeof(LNode)); sss->data=0; sss->next=NULL; InsertNode(LL,3,sss); printLinkList(LL);//-------------删除第四个结点------------------------------------ DeleteNode(LL,4); printLinkList(LL);}
运行结果:
阅读全文
0 0
- 数据结构之 单链表的基本操作(创建、取值、插入、删除)
- 写给初学数据结构的同学之(循环双链表基本操作,创建,插入,删除,排序)
- 带头结点单链表的基本操作(创建、测长、打印、插入、删除、取值、合并、排序、逆置)
- 单链表的基本操作(创建、插入、删除......)
- 数据结构:链表的基本操作(创建,删除,插入,逆序,摧毁)
- C语言之数据结构的顺序单链表创建,插入和删除操作
- 单链表基本操作的实现--创建、插入、查找、删除
- 单链表的基本操作_创建、查询、插入、删除
- 单链表基本操作:创建、插入、删除、获取
- Linked List的基本操作(创建/删除/插入/查找)
- 数据结构之 双链表的创建,删除,插入
- 数据结构(第二天)单向循环链表的创建,插入元素,(删除、查询元素跟单链表操作基本一致)
- 数据结构之链表操作,创建,插入,删除,查找。
- 07单链表的一些基本操作(创建、测量、插入、打印、删除)
- 数据结构 单链表的创建 插入 删除
- 数据结构(线性表的操作:建立表,插入元素,删除元素,取元素,置空)
- 数据结构线性表之顺序表的基本操作插入、删除、遍历、初始化
- 数据结构——单链表的创建、删除、遍历以及节点的插入、删除等操作
- 3.Oracle杂记——数据字典dba_data_files
- 4.Oracle杂记——数据字典dba_db_links
- 数据结构 P48 算法实现 栈的应用举例-数制转换
- NOIP2015 T6 运输计划 【树上差分】
- 51nod 1098 最小方差 排序+前缀和+期望方差公式
- 数据结构之 单链表的基本操作(创建、取值、插入、删除)
- Hibernate 实现增删改查案例
- 5.Oracle杂记——数据字典dba_extents
- Two Sum
- Ubuntu 16.04美化——Plymouth(splash screen/开机画面)主题安装
- 玄学定理-Nan-Spj特判定理
- AlphaGo Zero横空出世:DeepMind Nature论文
- 6.Oracle杂记——数据字典dba_free_space
- 51nod 1272 最大距离 O(nlog(n)) , 快排 , 最大连续子串