指定长度的单链表,删除和插入第i个结点
来源:互联网 发布:数据分析作图软件 编辑:程序博客网 时间:2024/05/16 01:20
指定表长度为n,输入n个之后终止循环。删除和插入特定位置上的结点,如删除第i个结点此程序包含头结点指定表长度n#include <stdlib.h>#include <stdio.h>const int n=3;//事先规定链表长度为ntypedef struct node{int data;struct node *next;}node;//单链表的建立函数*********node *creat(int n1){node *head,*p,*s;int i=0;head=(node*)malloc(sizeof(node));p=head;if(head==NULL){printf("存储分配失败");exit(1);}for(i=1;i<=n1;i++){s=(node*)malloc(sizeof(node));if(s==NULL){printf("存储分配失败");exit(1);}printf("please input the data: ");scanf("\n%d",&s->data);printf("\n%d\n",s->data);p->next=s;p=s;}//head=head->next;p->next=NULL;return head;}//打印表到屏幕*********************************************************void print(node *head){node *p;p=head->next;//head为头指针,头指针指向的结点没有数据域,所以不输出printf("\n these %d records are: \n",n);if(head!=NULL)while(p!=NULL){printf("\n uuuuuuuu %d",p->data);p=p->next;}}//删除第i个结点元素************************************node *delete_i(node *head,int i){node *p,*q;int j;int data1;p=head;if(i<1||i>n){printf("\nerror");exit(0);}else{j=0;while(j<i-1){p=p->next;j++;}q=p->next;p->next=q->next;data1=q->data;free(q);printf("\n被删除的结点的数据元素=%d",data1);}}//在第i个结点之前插入一个结点************************************node* insert_i(node *head,int i,int data2)//data2为被插入的结点的数据域{node *p,*s;int j;p=head;if(i<1||i>n+1){printf("\n error");exit(0);}else{j=0;while(j<i-1){p=p->next;j++;}s=(node*)malloc(sizeof(node));//为插入的结点分配空间s->data=data2;//插入的结点数据域s->next=p->next;p->next=s;}return head;}int main(){node*head1,*p;head1=creat(n);//单链表的建立,head1为头指针p=head1;print(head1);//打印单链表head1=delete_i(head1,0);//删除第0个结点,直接跳出程序head1=insert_i(p,2,2);print(head1);return 0;}转自http://www.cnblogs.com/tao560532/articles/2199280.html
0 0
- 指定长度的单链表,删除和插入第i个结点
- 删除单链表的第i个位置的结点
- 单链表--删除第i个结点
- 在单链表的第i个位置插入一个新结点
- 删除带头结点的双循环链表p中第i个结点
- 按规则插入结点,然后删除指定的结点。
- C语言进阶-第18讲:单链表的遍历、创建、插入和删除结点
- 数据结构 P38 算法实现 在带头结点的单链表的第i个元素插入元素e
- 删除单链表的倒数第k个结点
- 【算法】删除单链表的倒数第N个结点
- 单链表插入和删除结点c语言的实现
- (2)单链表的操作 ① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数
- C++中的list容器如何插入和删除第i个元素
- 链式存储中在第i个位置插入或删除的时间复杂度
- 在顺序表中插入和删除一个结点平均移动多少个结点
- 删除指定值的结点
- 带头结点的单链表和不带头结点的单链表的倒数第K个节点
- 从单链表删除指定结点
- CentOS 7无法使用ifconfig命令修复
- 编写自己的的MyStrlen/MyStrcpy函数,字符数组和指针
- 三种主流的Web架构 转~
- datepicker使用方法
- MFC中OpenCV的使用
- 指定长度的单链表,删除和插入第i个结点
- Leetcode[4] Median of Two Sorted Arrays
- SQL DDL语句
- CentOS 7 版本如何实现开机以图形界面启动
- Android 各大网络请求库的比较及实战
- hdu1272 小希的迷宫 并查集
- 常用软件安装与配置小结
- Reverse Integer
- spring自带定时器