中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

動態(tài)網(wǎng)站開發(fā)參考資料google建站推廣

動態(tài)網(wǎng)站開發(fā)參考資料,google建站推廣,wordpress 添加php文件,淘寶客網(wǎng)站建設(shè)詳細教程目錄 1.什么是順序表 2.動態(tài)順序表實現(xiàn) 2.1動態(tài)順序表結(jié)構(gòu)體 2.2初始化 2.3打印驗證函數(shù) 2.4判斷是否擴容,按需擴容 2.5頭插/尾插 2.6頭刪/尾刪 2.7指定位置插入數(shù)據(jù)/指定位置刪除數(shù)據(jù) 3.動態(tài)順序表代碼 1.什么是順序表 線性表是n個具有相同特性的數(shù)據(jù)元素的…

目錄

1.什么是順序表

2.動態(tài)順序表實現(xiàn)

2.1動態(tài)順序表結(jié)構(gòu)體

2.2初始化

2.3打印驗證函數(shù)

2.4判斷是否擴容,按需擴容

2.5頭插/尾插

?2.6頭刪/尾刪

?2.7指定位置插入數(shù)據(jù)/指定位置刪除數(shù)據(jù)

3.動態(tài)順序表代碼


1.什么是順序表

線性表是n個具有相同特性的數(shù)據(jù)元素的有限序列。線性表是?種在實際中廣泛使用的數(shù)據(jù)結(jié)構(gòu),常見的線性表:順序表、鏈表、棧、隊列、字符串等,在邏輯結(jié)構(gòu)上呈線性,在物理結(jié)構(gòu)(存儲)上不一定線性。順序表是線性表的一種,在邏輯結(jié)構(gòu)上呈線性,在物理結(jié)構(gòu)(存儲)也是線性的,因為底層結(jié)構(gòu)是數(shù)組,加上增刪查改等功能封裝在一起形成順序表,順序表分成靜態(tài)順序表和動態(tài)順序表。

2.動態(tài)順序表實現(xiàn)

2.1動態(tài)順序表結(jié)構(gòu)體

?SLDataType是類型重命名,便于替換類型;

size是有效數(shù)據(jù)個數(shù),也是一種重要下標,即為最后一個有效數(shù)據(jù)的下一個下標;

capacity是arr空間容量;

2.2初始化/銷毀

?要初始化后才能后續(xù)使用該結(jié)構(gòu)體,用完后進行銷毀;

2.3打印驗證函數(shù)

?便于后續(xù)驗證直接使用;

2.4判斷是否擴容,按需擴容

?當空間容量不夠時(即空間容量與有效數(shù)據(jù)值相等),就需要擴容,起始空間容量擴容4,后面的擴容按原空間容量的2倍或者1.5倍的原則擴容;

使用中間指針判斷是否擴容成功,失敗退出程序,成功就將原指針更新為中間指針,并更新擴容后的空間容量;

2.5頭插/尾插

?頭插分為三種情況:

?注意后移形式,避免覆蓋到后續(xù)后移數(shù)據(jù);

尾插分三種情況:

?2.6頭刪/尾刪

?頭刪分兩種情況:

?

?尾刪:

?2.7指定位置插入數(shù)據(jù)/指定位置刪除數(shù)據(jù)

pos是插入下標:

?

?

?2.8查找數(shù)據(jù)

?2.9改變指定下標的數(shù)據(jù)

3.動態(tài)順序表代碼

具體代碼如下:

//頭文件 SeqList.h#pragma once#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
typedef int SLDataType;//便于類型替換//動態(tài)順序表
typedef struct SeqList
{SLDataType* arr;//存儲數(shù)據(jù)的底層結(jié)構(gòu)int size;     //有效數(shù)據(jù)個數(shù)int capacity; //空間容量
}SL;靜態(tài)順序表
//#define N 10
//typedef struct SeqList
//{
//	SLDataType arr[N];//定長數(shù)組
//	int size;       //有效數(shù)據(jù)個數(shù)
//}SL;//初始化和銷毀
void SLInit(SL* ps);
void SLDestory(SL* ps);
//打印驗證
void SLPrint(SL* ps);//順序表頭插
void SLPushFront(SL* ps, SLDataType x);
//順序表尾插
void SLPushBack(SL* ps, SLDataType x);//判斷是否需要擴容,需要進行擴容
void SLCheckCapacity(SL* ps);//順序表的頭刪
void SLPopFront(SL* ps);
//順序表的尾刪
void SLPopBack(SL* ps);//指定位置插入數(shù)據(jù),后面數(shù)據(jù)存在就后移
void SLInsert(SL* ps, int pos, SLDataType x);
//刪除指定位置數(shù)據(jù),后面數(shù)據(jù)存在就前移
void SLErase(SL* ps, int pos);//改變指定下標的數(shù)據(jù)
void SLChange(SL* ps, int pos, SLDataType x);//查找
int SLFind(SL* ps, SLDataType x);
//SeqList.c#define _CRT_SECURE_NO_WARNINGS 1#include "SeqList.h"//初始化和銷毀
void SLInit(SL* ps)
{ps->arr = NULL;              //初始化為空指針 ps->size = ps->capacity = 0; //初始化什么都沒有,所以為0
}
void SLDestory(SL* ps)
{assert(ps);free(ps->arr);ps->arr = NULL;ps->size = ps->capacity = 0;
}
//打印驗證
void SLPrint(SL* ps)
{for (int i = 0; i < ps->size; i++){printf("%d ", ps->arr[i]);}printf("\n");
}//判斷是否需要擴容,需要進行擴容
void SLCheckCapacity(SL* ps)
{if (ps->size == ps->capacity)//有效數(shù)據(jù)個數(shù)與空間容量相等的時候,要插入需要先擴容{int newCapacity = ps->capacity == 0 ? 4 : 2 * ps->capacity;//起始空間容量為0,則第一次擴容4個,擴容原則擴容原空間容量的2倍或1.5倍SLDataType* tmp = (SLDataType*)realloc(ps->arr, newCapacity * sizeof(SLDataType));//中間指針接收擴容后的地址if (tmp == NULL)//擴容失敗{perror("Realloc Fail!");exit(1);//意外退出}ps->arr = tmp;//擴容成功ps->capacity = newCapacity;//更新擴容后的空間容量}
}//順序表頭插
void SLPushFront(SL* ps, SLDataType x)
{assert(ps);//或者if(ps == NULL) { return; }//若空間不夠,需要擴容SLCheckCapacity(ps);for (int i = ps->size; i > 0; i--){ps->arr[i] = ps->arr[i - 1];}ps->arr[0] = x;ps->size++;
}
//順序表尾插
void SLPushBack(SL* ps, SLDataType x)
{assert(ps);//若空間不夠,需要擴容SLCheckCapacity(ps);ps->arr[ps->size] = x;ps->size++;
}//順序表的頭刪
void SLPopFront(SL* ps)
{assert(ps);assert(ps->size);//順序表為空不能再刪了for (int i = 0; i < ps->size - 1; i++)//向前覆蓋{ps->arr[i] = ps->arr[i + 1];}ps->size--;//有效數(shù)據(jù)減1
}
//順序表的尾刪
void SLPopBack(SL* ps)
{assert(ps);assert(ps->size);//順序表為空不能再刪了ps->size--;//直接減去最后一位的有效數(shù)據(jù)
}//指定位置插入數(shù)據(jù),后面數(shù)據(jù)存在就后移
void SLInsert(SL* ps, int pos, SLDataType x)
{assert(ps);assert(pos >= 0 && pos <= ps->size);SLCheckCapacity(ps);for (int i = ps->size; i > pos; i--){ps->arr[i] = ps->arr[i - 1];}ps->arr[pos] = x;ps->size++;
}
//刪除指定位置數(shù)據(jù),后面數(shù)據(jù)存在就前移
void SLErase(SL* ps, int pos)
{assert(ps);assert(pos >= 0 && pos < ps->size);for (int i = pos; i < ps->size - 1; i++){ps->arr[i] = ps->arr[i + 1];}ps->size--;
}//改變指定下標的數(shù)據(jù)
void SLChange(SL* ps, int pos, SLDataType x)
{assert(ps);assert(pos >= 0 && pos < ps->size);ps->arr[pos] = x;
}//查找
int SLFind(SL* ps, SLDataType x)
{for (int i = 0; i < ps->size; i++){if (ps->arr[i] == x){return i;}}return -1;
}

//測試,project.c#define _CRT_SECURE_NO_WARNINGS 1#include "SeqList.h"void test()
{SL ps;SLInit(&ps);SLPushFront(&ps, 5);SLPushFront(&ps, 4);SLPushFront(&ps, 3);SLPushFront(&ps, 2);SLPushFront(&ps, 1);SLPrint(&ps);SLPushBack(&ps, 6);SLPushBack(&ps, 7);SLPushBack(&ps, 8);SLPushBack(&ps, 9);SLPushBack(&ps, 10);SLPrint(&ps);SLPopFront(&ps);SLPopFront(&ps);SLPrint(&ps);SLPopBack(&ps);SLPopBack(&ps);SLPrint(&ps);SLInsert(&ps, 0, 1);SLInsert(&ps, 1, 2);SLInsert(&ps, 8, 9);SLInsert(&ps, 9, 10);SLPrint(&ps);SLErase(&ps, 4);SLErase(&ps, 7);SLPrint(&ps);SLInsert(&ps, 4, 5);SLInsert(&ps, 7, 9);SLChange(&ps, 0, 10);SLChange(&ps, 1, 11);SLPrint(&ps);int ret = SLFind(&ps, 3);if (ret != -1){printf("找到了,在下標為%d的位置\n", ret);}else{printf("不存在數(shù)據(jù),查找失敗\n");}SLDestory(&ps);
}int main()
{test();return 0;
}

http://www.risenshineclean.com/news/35107.html

相關(guān)文章:

  • 自己建的網(wǎng)站可以用筆記本做服務(wù)器嗎sem專員
  • 泗洪網(wǎng)站設(shè)計公司ip域名查詢網(wǎng)站入口
  • 抖音代運營排名seo公司排行
  • 主流網(wǎng)站風格精品成品網(wǎng)站入口
  • 網(wǎng)站開發(fā)實訓報告參考文獻國內(nèi)真正的永久免費建站
  • 免費看電影的網(wǎng)站是什么快速收錄網(wǎng)
  • 怎樣做網(wǎng)站開發(fā)搜索優(yōu)化seo
  • 網(wǎng)站站長統(tǒng)計代碼百度風云搜索榜
  • 蘇州專業(yè)做網(wǎng)站公司有哪些如何進行電子商務(wù)網(wǎng)站推廣
  • 高端做網(wǎng)站做網(wǎng)站要多少錢
  • wordpress網(wǎng)站服務(wù)器深圳市seo點擊排名軟件價格
  • 河北通信建設(shè)有限公司網(wǎng)站搜索引擎優(yōu)化什么意思
  • 上海網(wǎng)站設(shè)計服務(wù)商長尾詞挖掘免費工具
  • 網(wǎng)站開發(fā)論文需要寫什么windows優(yōu)化大師怎么使用
  • wordpress短視頻主題上海整站seo
  • 兼職做調(diào)查哪個網(wǎng)站好溫州seo公司
  • 成都 高端網(wǎng)站建設(shè)如何制作網(wǎng)頁最簡單的方法
  • 網(wǎng)站設(shè)計如何收費上海專業(yè)網(wǎng)絡(luò)推廣公司
  • 公司網(wǎng)站自己可以做嗎外包項目接單平臺
  • 怎么添加網(wǎng)站百度網(wǎng)盤下載電腦版官方下載
  • 建商城網(wǎng)站如何去推廣一個app
  • 上海著名網(wǎng)站設(shè)計公司網(wǎng)絡(luò)營銷品牌
  • 微網(wǎng)站 微官網(wǎng)的區(qū)別嗎最近的新聞大事10條
  • 深色大氣網(wǎng)站模板電腦培訓學校學費多少
  • web網(wǎng)站開發(fā)的基本流程產(chǎn)品運營方案
  • php網(wǎng)站怎么做測試工具上海網(wǎng)站建設(shè)開發(fā)
  • 網(wǎng)站頂部展出的大幅廣告推廣網(wǎng)站源碼
  • 廣州專業(yè)的網(wǎng)站建設(shè)青島建站seo公司
  • 想象力做網(wǎng)站十大免費最虧的免費app
  • 佛山網(wǎng)站建設(shè)百度一下首頁