顺序表的创建、插入、删除、查找、求表长、输出元素
2018-01-11 16:15
288 查看
//线性表的顺序存储(顺序表) #include<stdio.h> #include<malloc.h> #include<stdlib.h> #define MAXLEN 10 // 定义顺序表的最大长度MAXLEN为10 typedef struct{ //定义节点 int data[MAXLEN]; int last; //last用来记录当前线性表中最后一个元素的数组中的位置,即last起到了指针的作用 }SeqList; SeqList *InitList() //初始化顺序表的函数 { SeqList *L; L=new SeqList; L->last=-1; //初始化的时候顺序表为空,所以last的值设置为-1 return L; } int InsList(SeqList *L,int i,int x) //对顺序表进行插入,i是插入的位置,x是插入的数据 { int j; if(L->last==MAXLEN-1) //首先判断顺序表是否已满,如果满了的话,则return -1 { printf("顺序表已满!"); return -1; } if(i<1||i>L->last+2) //判断插入位置是否正确 { printf("插入位置出错!"); return 0; } for(j=L->last-1;j>=i;j--) L->data[j+1]=L->data[j]; L->data[i-1]=x; L->last++; return 1; } int DelList(SeqList *L,int i) //删除第i个位置上的元素的函数 { int j; if(i<1||i>L->last+1) { printf("不存在第%d个元素!",i); return 0; } for(j=i-1;j<=L->last-1;j++) L->data[j]=L->data[j+1]; L->last--; return 1; } int SearchList(SeqList *L,int x) //搜索元素x,若存在则返回它的位置,若不存在则返回-1 { int j; for(j=0;j<=L->last;j++) if(L->data[j]==x) break; if(j<=L->last) return j+1; else return -1; } void LengthList(SeqList *L) //求顺序表长度的元素 { printf("顺序表的长度为:%d\n",L->last+1); } void PrintList(SeqList *L) //输出顺序表中所有的元素 { int i; for(i=0;i<=L->last;i++) printf("%d ",L->data[i]); } int main() //在main函数中,对一些函数进行测试,你们可以自己写代码测试 { SeqList *L; L=InitList(); InsList(L,1,1); InsList(L,2,2); InsList(L,3,3); InsList(L,4,4); InsList(L,5,5); LengthList(L); PrintList(L); printf("\n"); DelList(L,6); printf("\n"); PrintList(L); printf(" %d ",SearchList(L,3)); printf("\n"); printf(" %d ",SearchList(L,8)); return 0; }
相关文章推荐
- 编程菜鸟的日记-初学尝试编程-顺序表的类定义及其基本操作算法(创建表、元素插入、元素删除、顺序查找、测表空、求表长、输出等)
- 单链表的创建(头插尾插),表长,输出,插入,删除,查找,逆置,分解长两个链表(奇数偶数链表),查找倒数第k个元素,产出相同元素
- c语言:顺序表的实现(一) 创建,插入,删除,查找,输出等基本操作实现
- 单向链表的创建、遍历、求长、判存、判空、插入、删除、查找(按位置或元素)、合并
- 顺序表中静态顺序表的创建、插入和删除一个元素(源码分析)
- 单链表的创建,表长,插入,查找,逆置,中间元素,删除节点,打印
- (1)顺序表的操作 ① 输入一组整型元素序列,建立线性表的顺序存储结构。 ② 实现该线性表的遍历。 ③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。 ④ 在该顺序表中删除或插入指
- 建立完整的单向动态链表(包括初始化、创建、插入、删除、查找、销毁、输出)
- 数据结构:线性表(顺序存储)顺序表类(实现顺序表的创建,输出,插入,删除功能)
- 顺序表的创建,插入,删除,查找,逆序以及合并两个有序的顺序表
- 单向循环链表创建、遍历、插入、删除、查找(按位置,按元素值)、清空、销毁
- 线性表之顺序表的创建、初始化、查找、删除、插入和合并
- 顺序表的实现以及简单的 插入,删除,查找,输出操作
- 单链表的创建、初始化、插入、删除 、输出、求表长、清空、查找操作
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- 2、(c++)顺序表的建立、输出、查找、按元素位置删除代码
- 两种方法实现单向链表的创建、遍历、删除、查找、逆序输出(循环法和递归法)
- 自己的链表创建插入输出删除程序
- 线性表的顺序存储格式基本操作:初始化、插入、删除、查找、打印
- 动态链表的创建、插入、查找、删除的C++实现