链表(创建、插入、删除、输出链表等)
来源:互联网 发布:十字绣diy软件 编辑:程序博客网 时间:2024/06/16 07:08
实现功能,根据提示:
输入1:创建一个新链表;
输入2:插入链表
输入3:删除链表
输入0时:自动退出程序。
#include<stdio.h>#include<stdlib.h>typedef struct Slink { long long int data; struct Slink *next; }slink;int main() { slink *create_link(); void output_slink(slink *head); slink *insert(slink *head,int i,int x); slink *delete_link(slink *head,int i); slink *h; int a,b; int t; do{ printf("\n请选择:"); printf("\n1.建立链表"); printf("\n2.插入链表"); printf("\n3.删除链表"); printf("\0.退出链表"); printf("\n请你选择:(1/2/3/4)"); scanf("%d",&t); if(t == 1) { printf("\nplease input data:\n"); //提示输入链表的数据 h = create_link(); output_slink(h); //把创建的h链表作为输出的参数 } else if(t == 2) { printf("\n输入插入数据的位置(插入模式如:(a,b)):\n"); scanf("%d,%d",&a,&b); h=insert(h,a,b); output_slink(h); } else if(t == 3) { printf("\n请选择要删除链表的位置(a,b):\n"); scanf("%d",&a); h=delete_link(h,a); output_slink(h); } }while(t!=0); }slink *create_link() //创建链表head { slink *head,*s,*rear; int c; head = (slink *)malloc(sizeof(slink)); //生成头结点 rear = head; //尾指针指向最后一个节点 scanf("%d",&c); while(c!=0) { s = (slink *)malloc(sizeof(slink)); //生成新节点s s->data = c; rear->next=s; //将s新节点插入到表尾 rear=s; //修改尾指针指向当前的尾结点 scanf("%d",&c); } rear->next=NULL;//将最后一个节点的指针域值为空; return head; }void output_slink(slink *head) //输出链表 { slink *p; printf("\nnow the linklist is :\n"); p=head->next; //指针指向链表head的第一个节点 while(p->next!=NULL) { printf("%4d",p->data); //依次输出所有节点的信息 p=p->next; //指针指向下一个节点 } return; }slink *insert(slink *head,int i,int x) //插入节点 { slink *p,*q,*s; s=(slink *)malloc(sizeof(slink)); //生成新节点s s->data = x; //将x存放在s节点中 q=head;p=head->next; //q指向头节点,p指向第一个节点 while(p->data!= i&&p->next!=NULL) { q=p; p=p->next; } s->next = p; q->next = s; return head; }slink *delete_link(slink *head,int i) //删除节点 { slink *p,*q; q=head;p=head->next; while(p&&(p->data!=i)) { q=p; p=p->next; } if(p) { q->next=p->next; free(p); } else { printf("\nnot find!"); } return head; }
0 0
- 链表(创建、插入、删除、输出链表等)
- 链表的创建,插入,删除,输出
- c语言:顺序表的实现(一) 创建,插入,删除,查找,输出等基本操作实现
- 链表(创建,插入,删除和打印输出)
- 链表(创建,插入,删除和打印输出)
- 链表(创建,插入,删除和打印输出)
- 链表(创建,插入,删除和打印输出)
- 链表(创建,插入,删除和打印输出
- 链表(创建,插入,删除和打印输出
- 单向动态链表的创建、输入、插入、删除、输出
- 一道习题:链表的创建、输出、删除、插入
- 单向动态链表的创建、输入、插入、删除、输出
- 链表的创建,插入,删除,和输出
- 单向循环链表的创建/插入/删除/输出算法
- 链表的创建,插入,删除和输出
- 单链表,双向链表的插入,查询,创建,删除,输出
- 链表操作:创建,插入,删除,查找等功能
- 单循环链表-创建、插入、删除、反转等操作
- abap CA CO CS等操作符
- javascript从入门到精通
- Day54、约束(主键约束、唯一约束、检查约束、非空约束)、数据库对象(序列、索引、视图、分页)
- 正则表达式及常见用法介绍
- 第十周项目3-利用二叉树遍历思想解决问题
- 链表(创建、插入、删除、输出链表等)
- 关于字符串
- POJ 2459 模拟
- 三天上手PHP之7:运算符
- commonJs,AMD,CMD区别
- C语言小项目实践——日历程序
- 我所认识到的技术问题解决方法
- C++:堆与栈区别
- android知识回顾--动画深入分析