当前位置:文档之家› 算法与数据结构(顺序表的基本操作)

算法与数据结构(顺序表的基本操作)

#include
#include
#include


struct seqlist
{
int m;
int n;
int * element;
};
typedef struct seqlist * pseqlist;


/*************这玩意是书上的例子**********************
pseqlist CreatNullSeqlist(int max)
{
pseqlist palist =(pseqlist)malloc(sizeof(struct seqlist));
if(palist!=NULL)
{
palist->element=(int *)malloc(sizeof(int)*max);
if(palist->element)
{
palist->m=max;
palist->n=0;
return palist;
}
else free(palist);
}
printf("超出范围");
return NULL;
}
*****************************************************/




//***********下面的程序有错误 需要debug*************************
// 已经修正
pseqlist CreatNullSeqlist(int m)
{
pseqlist palist=(pseqlist)malloc(sizeof(struct seqlist));

if(palist!=NULL)
{
palist->element=(int *) malloc (sizeof(int)*m);
if(palist->element)
{
palist->m = m;
palist->n = 0;
// palist->element = NULL; //=NULL 握草 你是想让指针乱指啊 怪不得报错
return palist;
}
else
{
free(palist);
printf("创建数组元素表时失败");
return NULL;
}
}
printf("内存申请失败,可能是由于计算机内存不够引起的\n\n");
return NULL;
}
// *************************************************************/

void installerSeqlist(pseqlist palist) //表的初始化 用于测试
{
int i;
for(i=0;i<10;i++)
{
palist->element[i]=i;
}
palist->n=i;
}


void HeadInsert(pseqlist palist , int k) // 表头插入
{
int i;
if(palist->n==palist->m)
{
printf("错误,该数组已满");
}
else
{
for(i=palist->n -1; i>=0; i--)
{
palist->element[i+1]=palist->element[i]; //从后面开始往后移位
}
palist->element[0]=k;
palist->n ++;
}
}

void TailInsert(pseqlist palist , int k) //表尾插入
{
if(palist->n+1 == palist->m)
printf("数组已满 请尝试扩展空间后再试!");
else
{
palist->element[palist->n]=k;
palist->n++;
}
}


void PrintAllElement(pseqlist palist) //打印所有元素
{
int i;
if(palist->n==0||palist->m==0)
{
printf("输出失败,是空表,或者根本不是表,请重新检查输入地址的正确性");
}
else
{
for(i=0;i< palist->n;i++)
{
printf("\n %d第%d个元素是:%d \n",i,i+1,palist->element[i]);
}
}
}

void DeleteElement(pseqlist palist, int k) //按下标去去删除
{
int i=0;
if(palist->n==0)
{
printf("哥们 我已经到底了,没有东西可以删除了");
}
else
{
if((k<0) || (k>palist->m) )
printf("输入的位置有误 请检查参数");
else
{
for(i=k;i< palist->m;i++)
{
palist->element[i]=palist->element[i+1];
}
palist->n--;
}
}
}




void main ()
{
pseqlist pmylist;
pmylist=CreatNullSeqlist(10);

installerSeqlist(pmylist);
// PrintAllElement(pmylist);
// DeleteElement(pmylist,1

5);
PrintAllElement(pmylist);
}

相关主题
文本预览
相关文档 最新文档