数据结构学习笔记

                                                                       数据结构的学习笔记及相关记录()顺序表

学习数据结构有一段时间了总觉得知识点有点混乱所以今天特意写篇笔记记录下学习的路程。

.线性表

1.顺序表示:最大的优点是可以随机存取,但是移动插入以及删除很不方便

2.链式表示

一下为顺序表示的一些基本算法

//定义一个顺序表的结构

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 )exit( OVERFLOW );
    L.length = 0;
    L.listsize = LIST_INIT_SIZE;       //为线性表分配初始分配量
    return OK;
}

//插入一个元素的函数主要操作有找到插入位置再把后面的元素依次后移还要考虑到
//是否空间的分配
int ListInsert_Sq(Sqlist &L,int i,ElemType e){
  if( i<1 || i>L.length+1 ) return ERROR;          
  if( L.length>=L.listsize)
 {
  newbase = ( ElemType *) realloc (L.elem, (L.listsize+LISTINCREMENT) *sizeof(ElemType));
  if( !newbase) exit (OVERFLOW);
  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 OK;
}                                                             
//输出所有节点的值
int Load_Sq(SqList &L)
{
  int i;
  if(L.length==0) printf(“The List is empty!”);
  else 
  {
     printf(“The List is: ”);
     for(i=0;i<L.length;i++) printf("%d",L.elem[i]);
}
  printf(“\n”);
  return OK;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值