顺序表(135)

来源:互联网 发布:活动报名网站源码 编辑:程序博客网 时间:2024/06/05 04:45

源代码;

// 程序名称:SXB// 程序目的:实现对顺序表的增删查改// By 陈振 大连东软信息学院 2016.09.18#include <stdio.h>#include <malloc.h>#include <string.h>#define maxsize 50typedef struct {int a[maxsize];int len;} list;void print(list *p);        //打印 void lenth (list*);        //顺序表的长度 int insert (list *p, int loca, int value);        //插入 int drop (list *p, int loca);        //删除 int search (list *p, int value);        //查找 int main() {    int i;    list *p;    list L;    p = &L;    int loca;    int value;        for (i = 0; i < 10; i++)        p->a[i] = 2*i;p->len = 10;    print(p);printf("\n");// 插入操作printf("请输入你要插入的位置: ");scanf("%d",&loca);printf("请输入你要插入的数: ");scanf("%d",&value);if (insert(p,loca,value))        print(p);else    printf("插入失败\n");//删除操作printf("\n请输入你要删除的位置: ");scanf("%d",&loca);   drop(p, loca);print(p);//查找操作printf("\n请输入你要查找的数: ");scanf("%d",&value);if (search(p, value) == 0)     printf("没找到\n");else         printf("你查找的数的位置为:%d\n",search(p,value));    print(p);return 0; }void print(list *p) {int i;for (i = 0; i < p->len; i++) {   printf("%d ", p->a[i]);}}void lenth (list *p) {printf("the list lenth is %d\n",p->len);return;}int insert (list *p, int loca, int value) {int i;if (p->len == maxsize) {printf("Overflow \n");return 0;}else if (loca < 1 || loca > p->len) {printf("the location is wrong\n");return 0;}else {    for (i = p->len - 1; i >= loca - 1; i--)    p->a[i+1] = p->a[i];p->a[loca-1] = value;p->len++;return 1;}} int drop (list *p, int loca) {int i;if (p->len == maxsize) {printf("Overflow \n");return 0;}else if (loca < 1 || loca > p->len) {printf("the location is wrong\n");return 0;}else {    for (i = loca - 1; i < p->len - 1; i++)    p->a[i] = p->a[i+1];p->len--;return 1;}} int search (list *p, int value) {int i;for (i = 0; i < p->len; i++) {if (p->a[i] == value) {    break;}}if (i < p->len)    return i+1;else    return 0;} 

0 0