数据结构学习历程

 头文件

​
#include<stdlib.h>
#define LIST_INIT_SIZE  80
#define LISTINCREMENT  10
typedef  int ElemType;

typedef struct{
   ElemType *elem;
   int length;
   int listsize;
}SqList;

int InitList_Sq(SqList *L){

	L->elem=(ElemType*) malloc(LIST_INIT_SIZE*sizeof(ElemType));
	if(!(L->elem)) return 0;
	L->length=0;
	L->listsize=LIST_INIT_SIZE;
    
	return 1;

}
	
int  AssignList_Sq (SqList *L )
{
	int i;
	for(i=0; i<10; i++)	
	{ L->elem[i]=rand( )%100;	L->length++; }
	
}
	
int OutputList_Sq(SqList *L )
{
	int i;
	for(i=0; i<L->length; i++)	
	{ printf("The element are:%d\n", L->elem[i]); } 
}

int ListInsert_Sq(SqList *L,int i,ElemType e)
{
	ElemType *q,*p,*newbase;

	if(i<1||i>L->length+1)  return 0;
	if(L->length>=L->listsize)
	{
		newbase=(ElemType *) realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(ElemType));
		if(!(newbase)) return 0;
		L->elem=newbase;
		L->listsize+=LISTINCREMENT;
	}

	q=&(L->elem[i-1]);
	for(p=&(L->elem[L->length-1]);p>=q;--p)
		*(p+1)=*p;
	*q=e;
	++(L->length);

	return 1;
}

int ListDelete_Sq(SqList *L,int i,ElemType *e)
{
	ElemType *q,*p;
	if((i<1)||(i>L->length)) return 0;
	p=&(L->elem[i-1]);
	*e=*p;
	q=L->elem+L->length-1;
	for(++p;p<=q;++p)
		*(p-1)=*p;
	--L->length;
	return 1;
}

​

  主函数

#include<stdio.h>
#include"linflist.h"



int main()
{
	SqList L;	
    ElemType e;
	InitList_Sq(&L);
    AssignList_Sq (&L);
    OutputList_Sq(&L);
	printf("\n");
    ListInsert_Sq(&L,2,3);
    OutputList_Sq(&L);
	printf("\n");
    ListDelete_Sq(&L,5,&e);
    OutputList_Sq(&L);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值