逆位序正位序建表以及插入和删除值以及返回链表中元素个数
来源:互联网 发布:js int 转date 编辑:程序博客网 时间:2024/04/29 01:29
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define OK 1#define ERROR 0#define OVERFLOW -2typedef int status;typedef int ElemType;typedef struct LNode{ElemType data;struct LNode *next;}LNode,*LinkList;void creatlist(LinkList &L,int n)//逆位序建表,就是插入节点;{int i;LinkList p;L=(LinkList)malloc(sizeof(LNode));//建立一个头指针L->next=NULL;printf("输入%d个数",n);for(i=n;i>0;--i){p=(LinkList)malloc(sizeof(LNode));//建立一个头结点scanf("%d",&p->data);p->next=L->next;L->next=p;}}/*void creatlist(LinkList &L,int n)//正位序建表,移动头指针。{int i;LinkList r;LinkList s;L=(LinkList)malloc(sizeof(LNode));r=L;printf("输入链表中的元素:\n");for(i=0;i<n;i++){s=(LinkList)malloc(sizeof(LNode));scanf("%d",&s->data);r->next=s;r=s;}r->next=NULL;}*/void printlist(LinkList &L){ LinkList p;for(p=L->next;p!=NULL;p=p->next){printf("%d",*p);}}void insertlist(LinkList &L,int i,ElemType e){LinkList p;LinkList s;int j=0;p=L;while(p&&j<i-1){p=p->next;++j;}s=(LinkList )malloc(sizeof(LNode));s->next=p->next;p->next=s;s->data=e;}int delectlist(LinkList &L,int i,ElemType &e){LinkList p;LinkList s;int j=0;p=L;while(p&&j<i-1){p=p->next;++j;}s=p->next;p->next=s->next;e=s->data;return e;}void listlength(LinkList &L){int d=0;LinkList p;p=L;while(p->next!=NULL){d++;p=p->next;}printf("%d\n",d);}int main(){int n,e,i,j;LinkList L;printf("input a data:\n");scanf("%d",&n);creatlist(L,n);printf("链表的内容为:\n");printlist(L);printf("输入一个插入位置:\n");scanf("%d",&i);printf("输入一个插入值:\n");scanf("%d",&e);insertlist(L,i,e);printlist(L);printf("输入删除元素位置:\n");scanf("%d",&j);delectlist(L,j,e);printf("%d\n",e);printf("链表中元素的个数为:\n");listlength(L);return 0;}
阅读全文
0 0
- 逆位序正位序建表以及插入和删除值以及返回链表中元素个数
- 链表的概念以及原理 插入和删除元素
- 读取一串整数,寻找合适的数据结构和算法,实现插入元素track(int x) 方法,以及GetRankOfNumber(int x)方法,返回值为小于等于x的元素个数(不包括x本身)
- 链表的创建、元素插入、元素删除、以及两个有序链表的归并
- 插入、更新以及删除数据
- ArrayList 的删除重复元素以及删除
- 单链线性表的创建,元素的插入删除以及合并
- javascript数组元素的添加、删除与插入以及参数数组的使用
- javascript数组元素的添加、删除与插入以及参数数组的使用
- javascript数组元素的添加、删除与插入以及参数数组的使用
- javascript数组元素的添加、删除与插入以及参数数组的使用
- javascript数组元素的添加、删除与插入以及参数数组的使用
- javascript数组元素的添加、删除与插入以及参数数组的使用
- vector中 迭代器的使用 以及元素的去重、排序、插入、删除操作。 【小笔记】
- C语言单向动态链表程序,实现链表的建立,合并,重新排序,链表元素的插入与删除,以及根据元素成员的值进行元素删除。
- 使用SqlDataSource插入、更新以及删除数据
- 单链表的插入删除以及逆转
- 链表的创建、插入以及删除
- 我要写算法(二)—— 排序之冒泡排序
- switch(a)中的a适用基本数据类型有哪些
- SpringMVC拦截器
- objective-c计算相对于现在的时间差
- php接入微信支付的心得
- 逆位序正位序建表以及插入和删除值以及返回链表中元素个数
- python 类demo
- 可在webForm上使用的mvc框架
- 菜鸡二本培训完刚毕业java程序员
- 三目运算符例子
- 51NOD 1639 绑鞋带 递推
- HttpClient与HttpURLConnection的提交数据
- 方法重写(override)原则
- 赶集网租房房价爬取和Python本地服务器部署