链表 C语言实现
来源:互联网 发布:算边坡稳定性的软件 编辑:程序博客网 时间:2024/04/26 14:16
使用GCC 5.4 测试
#include <stdio.h>#include <stdlib.h>typedef int ElemType;/** 定义链表的一个节点的结构*/struct node { ElemType data; /*数据域*/ struct node *next; /*指针域*/} ;typedef struct node *LinkList;//指向结构的指针typedef struct node LNode;//创建链表LinkList CreateLinkList(int n) { LinkList p,r,list=NULL; ElemType e; int i; for(i=1; i<=n; i++) { scanf("%d",&e); p=(LinkList)malloc(sizeof(LNode)); p->data=e; p->next=NULL; if(!list) { list=p; } else { r->next=p; } r=p; } return list;}//插入链表void insertList(LinkList *list,LinkList q,ElemType e) { LinkList p;//临时链表指针P p=( LinkList)malloc(sizeof(LNode));// 分配空间。 p->data=e;// 进行数据赋值// printf ("%d\n",*list) ; if(!*list) {//如果 list 为空, *list=p; p->next=NULL; } else {//q的指针指向 P, p->next=q->next; q->next=p; }}//删除节点 void delLink(LinkList *list ,LinkList q) { LinkList r; if(&q==list) { *list=q->next; free(q); } else { for(r=*list; r->next!=q; r=r->next); if(r->next!=NULL) { r->next=q->next; free(q); } }}void destroyLinkList(LinkList *list) { LinkList p,q; p=*list; while(p) { q=p->next; free(p); p=q; } *list=NULL;}int main() { int e,i; LinkList l,q; q=l=CreateLinkList(1); /*创建一个链表结点,q和l指向该结点*/ //创建的第一个节点 , next 节点指向空// printf ("%d\n",l->data); scanf("%d",&e); while(e) { /*循环地输入数据,同时插入新生成的结点*/ insertList(&l,q,e) ; q=q->next; scanf("%d",&e); } q=l; printf("The content of the linklist\n"); while(q) { /*输出链表中的内容*/ printf("%d ",q->data); q=q->next; } q=l; printf("\n删除第五个元素\n"); for(i=0; i<4; i++) { /*将指针q指向链表第5个元素*/ if (q == NULL) { printf("The length of the linklist is smaller than 5 !"); return; } q=q->next; } delLink(&l,q); /*删除q所指的结点*/ q=l; while(q) { /*打印出删除后的结果*/ printf("%d ",q->data); q=q->next; } destroyLinkList(&l); /*释放掉该链表*/ return 0;}
0 0
- 链表c语言实现
- 链表-C语言实现
- 链表 C语言实现
- 链表C语言实现
- 链表(LinkedList) C 语言实现
- 链表ADT C语言实现
- 链表ADT C语言实现
- 链表(C语言实现)
- DataStructure---LinkList 链表C语言实现代码
- 使用C语言实现“泛型”链表
- 使用C语言实现“泛型”链表
- 使用C语言实现“泛型”链表
- 链表、栈、队列的C语言实现
- C语言实现头插法(链表)
- 栈的C语言实现(链表)
- 链栈 C语言实现
- 地球 c语言实现
- C语言实现堆栈
- Android OpenCV Camera preview 横屏以及不全屏的问题
- PAT-B 1019. 数字黑洞 (20)
- sun黑科技之动态添加jvm参数
- Android设置在代码中设置沉浸式布局
- Android直播解决方案
- 链表 C语言实现
- JSON
- jsessionid的简单说明
- PAT-A 1069. The Black Hole of Numbers (20)
- 网易、美团2018技术招聘编程题--java实现
- Delphi 中的 procedure of object
- git clone Permission denied (publickey).
- tomcat的端口被占用的解决方案
- 使用ThreadLocal变量的时机和方法