色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 數據結構之順序表

數據結構之順序表 時間:2018-01-10      來源:未知

 什么是順序表?

首先順序表指的是在數據結構中的一種線性存儲結構,區別于鏈式表。

其主要借助元素在存儲器中的相對位置來表示數據元素間的邏輯關系。通常存將數據儲在一片連續的空間上,例如數組。

結構如下圖:

數據結構順序表

順序表的實現:

在C語言中,一維數組的元素也是存放于一片連續的存儲空間中,故可借助于C語言中一維數組類型來描述線性表的順序存儲結構。

頭文件如下:
#ifndef _SEQLIST_H_
#define _SEQLIST_H_
#include <stdio.h>
#include <stdlib.h>
#define N 10

//順序表結構的定義

//data為數組,用于存儲數據

//last為整形數,用來記錄數組中后一個元素的下標

typedef struct seqlist

{

int data[N];

int last;

}seqlist_t;

//創建順序表

seqlist_t *seqlistCreate();

//判斷順序表是否未滿

intisFull(seqlist_t *s);

//判斷順序表是否為空

intisEmtpy(seqlist_t *s);

//插入數據

intseqlistInesert(seqlist_t *s,intvalue,int offset);

//刪除數據

intseqlistDelete(seqlist_t *s,int offset);

//查看順序表

void seqlistShow(seqlist_t *s);

#endif

函數實現如下:
#include "seqlist.h"
//創建順序表,返回順序表的地址
seqlist_t *seqlistCreate()
{
  seqlist_t *s = NULL;
  s = (seqlist_t*)malloc(sizeof(seqlist_t));
  if(NULL == s)
  {
        printf("create err,fail to malloc\n");
        return NULL;
  }
  s->last = -1;
 
  return s;
}
//判斷順序表是否未滿,last值為N-1時順序表為滿
intisFull(seqlist_t *s)
{
  return s->last == N - 1;
}
//判斷順序表是否為空
intisEmtpy(seqlist_t *s)
{
  return s->last == -1;
}
//插入數據
//value:插入數據
//offset:插入位置
intseqlistInesert(seqlist_t *s,intvalue,int offset)
{
  if(isFull(s))//判斷順序表是否為滿
  {
        printf("insert err,seqlist is full\n");
        return -1;
  }
  if(offset < 0 || offset > s->last + 1)//判斷插入的位置offset是否有誤
  {
        printf("insert err,err offset\n");
        return -1;
  }
  inti = s->last;//臨時變量i保存last;
  while(i>= offset)//移動i所標記的元素,后移動的為offset標記位置的元素
  {
        s->data[i + 1] = s->data[i];
        i--;
  }
  s->data[offset] = value;
  s->last++;//讓last標記新的末尾元素。
 
  return 1;
}
//刪除數據
intseqlistDelete(seqlist_t *s,int offset)
{
  if(isEmtpy(s))
  {
        printf("delete err,seqlist is empty\n");
        return -1;
  }
  if(offset < 0 || offset > s->last)
  {
        printf("delete err,err offset\n");
        return -1;
  }
  int ret = s->data[offset];
  while(offset < s->last)
  {
        s->data[offset] = s->data[offset + 1];
        offset++;
  }
  s->last--;
 
  return ret;
}
//查看順序表
void seqlistShow(seqlist_t *s)
{
  inti = 0;
  while(i<= s->last)
  {
        printf("%d ",s->data[i]);
        i++;
  }
}

主函數用于測試:
#include "seqlist.h"
intmain()
{
  seqlist_t *s = seqlistCreate();
  seqlistInesert(s,1,0);
  seqlistInesert(s,2,1);
  seqlistInesert(s,3,2);
  seqlistInesert(s,4,3);
  seqlistInesert(s,5,4);
  seqlistShow(s);
  puts("");
  seqlistDelete(s,4);
  seqlistShow(s);
  puts("");
 
  return 0;
}

上一篇:標準IO 中對文件的基本操作

下一篇:音頻解碼的兩個標準AC97和IIS

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5,京公海網安備11010802025203號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 日韩av在线电影网| 丝袜美腿亚洲一区二区| 成人免费自拍视频| 91麻豆桃色免费看| 亚洲缚视频在线观看| 国产视频欧美视频| 中文字幕在线亚洲| 欧美视频在线观看免费| 97在线免费观看视频| 国产精品嫩草影院久久久| 亚洲黄页网在线观看| 在线日韩中文字幕| 欧美日韩免费区域视频在线观看| 欧美激情极品视频| 国产精品老女人精品视频| 亚洲专区国产精品| 日韩在线欧美在线| 91爱视频在线| 亚洲国产一区二区三区四区| 久久精品中文字幕一区| 国内精久久久久久久久久人| 成人国产精品色哟哟| 国产亚洲精品美女久久久| 欧美国产一区二区三区| 国产精品影片在线观看| 亚洲香蕉成视频在线观看| 色综合天天综合网国产成人网| 国产精品久久久久久久久久久新郎| 日韩毛片中文字幕| 粉嫩av一区二区三区免费野| 国产精品吴梦梦| 日韩在线免费高清视频| 欧美一区二粉嫩精品国产一线天| 亚洲第一精品久久忘忧草社区| 欧美成年人视频| 91久久久国产精品| 狠狠爱在线视频一区| 国产精品久久久久aaaa九色| 在线观看亚洲视频| 国产精品亚洲网站| 欧美日本高清一区|