C语言编写一个顺序表程序,要求:完成创建、增加、删除、查找。

速度!!!

#include<stdio.h>
#include<stdlib.h>

#define Size 50

//定义顺序表结构体类型

typedef struct Table{
int*head;//顺序表头指针,为整型
int length;//顺序表中元素个数
int size; //顺序表的长度
}Table;

//创建顺序表
Table CreateTable(){
Table T;
if(!(T.head=(int*)malloc(Size*sizeof(int)))){
printf("内存分配错误!\n");
exit(0);
}

T.size=Size;
T.length=0;
return T;
}

//增加
void Insert(Table T,int set,int values)//set为插入的位置,values为值
{
//首先判断插入位置是否正确
if(set<0||set>T.length){
printf("插入位置不正确!\n");
reutrn;
}

//判断是否有足够的内存空间存储增加的数
if(T.length==T.size){
if(!(T.head=(int*)realloc(T.head,(T.size+10)*sizeof(int)))){
printf("内存分配错误!\n");
exit(0);
}
T.size+=10;
}

//插入数据
for(int i=s.length;i>set;i--)
T.head[i]=T.head[i-1];

T.head[set]=values;
T.length++;
}

//删除
void Delete(Tabel T,int set)
{
if(set<0||set>=T.length)
{
printf("删除数的位置不争确,删除失败!\n");
return;
}

//输出数据
for(int i=set;i<s.length;i++)
T.head[i]=T.head[i+1];
T.length--;
}

//查找
int Search(Tabel T,int value)
{
for(int i=0;i<T.length;i++)
if(T.head[i]==value)
return i;
return -1;
}

有问题的话自己改一下,没调试。
温馨提示:内容为网友见解,仅供参考
无其他回答

用C语言编写一个有关顺序表的程序代码
int ListEmpty(SqList *L) \/* 求顺序表是否为空 *\/ { return(L->length==0);} int GetElem(SqList *L,int i,ElemType e) \/*求顺序表中某个数据的元素值 *\/ { if(i<1||i>L->length)return 0;else e=L->elem[i-1];return 1;} int LocateElem(SqList *L,ElemType e) ...

用c语言编写一段程序,建立一个顺序表(需要自己输入数据,并插入数据...
l->elem) exit(0); l->length=0; l->listsize=LIST_INIT_SIZE;}int InList(SqList *l){ int *p,*newbase; p=l->elem; while(1) { for(;p<l->elem+l->listsize;p++) { scanf("%d",p);if(*p==-1) break;l->length++; } if((p==l->elem+l->listsize))...

谁能帮我用C语言做一个顺序表的超市管理系统,需要能进行增,删,改,查...
void insert(linklist*p);\/\/传入链表的首地址,插入函数ps:插入就是增加啊!void change(linklist*p);\/\/修改商品价格和数量!void del(linklist*p);删除商品信息!void sort(linklist*p);\/\/排序 void find(linklist*p);\/\/查找(里面包含输出)void output(linklist*p);\/\/输出函数 int menu(...

是C语言中建立顺序表的程序
int main(){ Seqlist L;L.length=0;\/\/初始化线性表的长度为0 creat(L);show(L);return 0;} void creat(Seqlist &L){ int a;printf("请输入要创建的元素的个数:\\t");scanf("%d",&a);for(int i=0;i<a;i++){ printf("请输入第%d个元素\\t",i+1);scanf("%d",&L.data[i...

用C语言创建一个顺序表并完成插入等操作
char a[],int n) { \/\/建立顺序表int i;for(i = 0;i < n;i++) L->data[i] = a[i];L->length = n;}bool listinsert(sqlist *&L,int i,char e) { \/\/插入数据元素int j;if(i < 1 || i > L->length + 1) return false;i--;for(j = L->length;j > i;j--)...

数据结构c语言版一道题求解
,element[n - 1]存放线性表中的元素 *\/}; typedef struct SeqList *PSeqList;PSeqList createNullList_seq(int m ) {\/* 创建新的顺序表 *\/ PSeqList palist= (PSeqList)malloc(sizeof(struct SeqList)); if (palist!=NULL){ palist->element= (DataType*)malloc(size...

数据结构 用C语言实现顺序表的建立及遍历
include <stdio.h>#include <malloc.h>typedef struct nlist{ int *np; int len;\/\/已使用地址个数 int maxlen;\/\/最大地址个数}NLT;NLT *createlist();\/\/创建顺序表int addtolist(NLT *nlist);\/\/向顺序表插入元素void pList(NLT *nlist);\/\/遍历顺序表int main(){ int i...

用C语言编写程序实现顺序表的插入操作,并且从键盘读取元素给顺序表初...
return 1;}\/\/在线性表的第i个元素之前插入元素e void PrintList(List L){ printf("顺序表中的元素:\\n");for(int k=0;k<=L.length-1;k++)printf("%5d",L.elem[k]);printf("\\n");} void main(){ \/\/void SqList(List &L);\/\/int InsertSq(List &L,int i,int e);使用之前...

c语言顺序表程序编写,高手快帮我啊!
这是我写的代码希望对你有帮助:\/* Note:Your choice is C IDE *\/ include "stdio.h"define maxsize 100 typedef struct { int data[maxsize];int length;}sequetiallist;main(){ int x,y,i=0,k;sequetiallist ll;printf("please create the list!\\n");scanf("%d",&y);while(y!=...

求高人帮编一个有关顺序表的C语言程序,望速回,非常感谢
void chazhao1(int a[])\/*顺序查找*\/ { int n=0,num;printf("请输入要查找的数:\\n");scanf("%d",&num);for(int i=0;a[i]!=0;i++)if(a[i]==num){ printf("第%d位为%d。\\n",i,num);n=n+1;} if(n==0)printf("没找到该数!\\n");} void chazhao2(int a[])\/...

相似回答