单链表的增添删改(C语言)
来源:互联网 发布:linux教程xwindows 编辑:程序博客网 时间:2024/06/06 02:04
创建一个结构体
#include <stdio.h>typedef struct student{
int data;struct student *next;}Node;
//创建单链表头插法Node *Creatlist(int a[],int n){
Node *first=(Node *)malloc(sizeof(Node));//为首节点开辟内存first->next=NULL; //将首节点的指针域初始化Node *s=NULL;for(int i=0;i<n;i++){s=(Node *)malloc(sizeof(Node)); //为下一个节点开辟内存s->data=a[i]; //对数据域赋值s->next=first->next;//对指针域赋值first->next=s;}return first;}
//创建单链表头插法Node *Creatlisty(int a[],int n){
Node *s=NULL,r=NULL;Node *first=(Node *)malloc(sizeof(Node)); // 生成头节点r=first;// 尾指针初始化for(int i=0;i<n;i++){s=(Node *)malloc(sizeof)(Node);s->data=a[i]; //为数据域赋值r->next=s;//为尾指针赋值r=s;}r->next=NULL;//单链表建立完毕,将终端节点的指针域置空return first;}
//打印单链表// 按值查找void Printlist(Node *first){
Node *p=first->next;while(p!=NULL){printf("%d",p->data);p=p->next;}}
//求链表的长度int length(Node *first){
Node *p=first->next;int count=0;while(p!=NULL){count++;p=p->next;}return count;}
int Locatelist(Node *first,int x){
Node *p=first->next;int count=1;while(p!=NULL){if(p->data==x);return count;count++;}}
//按位查找int Getlist(Node *first,int x,int *ptr){
Node *p=first->next;int count=1;while(p!=NULL&&count<i){p=p->next;count++;}if(p==NULL){printf("查找失败");return 0;}else{return *ptr->data;}}
//插入操作void Insert(Node *first,int n,int x){
Node *p=first;Node *s=NULL;int count=0;while(p!=NULL&&count<n-1){count++;p=p->next;}if(p==NULL){printf("插入失败");}else{s=(Node *)malloc(sizeof)(Node);s->data=x;s->next=p->next;p->next=s;}}
//删除操作void Delete(Node *first,int n,int *ptr){
Node *p=first;int count=0;Node *s=NULL;while(p!=NULL&&count<n-1){count++;p=p->next;}if(p==NULL||p->next==NULL){printf("删除失败");}else{*ptr=p->data;s=p->next;p->next=s->next;free(q);}}// 销毁操作void Destory(Node *first){
Node *p=first;while(p!=NULL){first=first->next;free(p);p=first;}}
阅读全文
0 0
- 单链表的增添删改(C语言)
- js 简单实现表单数据的增添,单项删改,多项删除,修改以及全选功能
- girdview 增添删改,list数据源排序,分页等操作,代码。
- liunx下C语言进行增添查删处理数据库MySQL
- 单链表实现多项式加法的头文件(待删改)
- xmu 1425.字符串的增添
- 增添趣味: 给单调的 Windows 窗体应用程序增添趣味
- c语言数据结构中循环队列操作,包括初始化,创建,清空销毁,增添,删除,求队长,遍历等等
- 双链表的插删改查
- Lucene对于索引的删改
- c语言的单链表
- 我们为您的世界增添光彩
- debian rules文件增添的补丁机制
- linux中模块的增添和删除
- Javascrpit mvc 简单的增添删除查找
- java基础 数组的增添改查
- MySQL数据库的增添改查
- 分类中增添属性的方法
- 从零开始写Python爬虫 --- 2.1 Scrapy 爬虫框架的安装与基本介绍
- jojoi
- C++笔记——类的友元
- web单选按钮传值问题
- 数飞机 -LintCode
- 单链表的增添删改(C语言)
- Spring入门(Schema-based AOP其二)
- 面向对象
- Vue生态——vue-resource
- Servlet学习笔记—HttpServletRequest
- J
- mybatis-config.xml文件配置
- 嵌入式多路温湿度监控系统(七主控程序的Makefile文件)
- Java学习笔记 15 细节处理 asList + subList