国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用

這篇具有很好參考價(jià)值的文章主要介紹了【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
上期回顧: 【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表
個(gè)人主頁(yè): C_GUIQU

前言

各位小伙伴大家好!上期小編給大家講解了數(shù)據(jù)結(jié)構(gòu)中的順序表,接下來(lái)講講順序表該如何應(yīng)用。
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言

1. 基于動(dòng)態(tài)順序表實(shí)現(xiàn)通訊錄

1.1 通訊錄功能

(1)能夠保存聯(lián)系人的姓名、年齡、性別、電話(huà)、住址

(2)添加聯(lián)系人信息

(3)刪除聯(lián)系人信息

(4)修改聯(lián)系人信息

(5)查找聯(lián)系人信息

(6)查看通訊錄中所有聯(lián)系人信息

(7)清空通訊錄

(8)每次加載通訊錄時(shí)自動(dòng)載入歷史通訊錄,退出通訊錄后自動(dòng)保存通訊錄信息

1.2 代碼實(shí)現(xiàn)

1.2.1 SeqList.h

#pragma once
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <Windows.h>
#include "Contact.h"
 
typedef Info SLDataType; //順序表元素種類(lèi)為存放個(gè)人信息的結(jié)構(gòu)體
 
typedef struct SeqList
{
    SLDataType* a;
    size_t size;
    size_t capicity;
} SeqList;
 
// 順序表初始化
void SeqListInit(SeqList* psl);
// 檢查空間,如果滿(mǎn)了,進(jìn)行增容
void CheckCapacity(SeqList* psl);
// 順序表尾插
void SeqListPushBack(SeqList* psl, SLDataType x);
// 順序表刪除pos位置的值
void SeqListErase(SeqList* psl, size_t pos);
// 順序表銷(xiāo)毀
void SeqListDestory(SeqList* psl);

1.2.2 SeqList.c

#include "SeqList.h"
 
void SeqListDestory(SeqList* psl)
{
    assert(psl);
    free(psl->a);
    psl->a = NULL;
    psl->capicity = 0;
    psl->size = 0;
}
 
void SeqListInit(SeqList* psl)
{
    assert(psl);
    psl->a = (SLDataType*)malloc(sizeof(SLDataType) * 4);
    if (psl->a == NULL)
    {
        perror("malloc fail");
        return;
    }
    psl->size = 0;
    psl->capicity = 4;
}
 
void CheckCapacity(SeqList* psl)
{
    assert(psl);
    if (psl->size == psl->capicity)
    {
        SLDataType* tmp = (SLDataType*)realloc(psl->a, sizeof(SLDataType) * psl->capicity * 2);
        if (tmp == NULL)
        {
            perror("realloc fail");
            return;
        }
        psl->a = tmp;
        psl->capicity *= 2;
    }
}
 
void SeqListPushBack(SeqList* psl, SLDataType x)
{
    assert(psl);
    CheckCapacity(psl);
    psl->a[psl->size++] = x;
}
 
void SeqListErase(SeqList* psl, size_t pos)
{
    assert(psl);
    assert(0 <= pos && pos < psl->size);
    while (pos < psl->size - 1)
    {
        psl->a[pos] = psl->a[pos + 1];
        pos++;
    }
    psl->size--;
}

1.2.3 Contact.h

#pragma once
 
#define NAME_MAX 100
#define GENDER_MAX 10
#define TEL_MAX 11
#define ADDR_MAX 100
 
struct SqeList; 
//因?yàn)檫@里不能聲明SeqList.h,不然會(huì)造成嵌套聲明,所以就單獨(dú)聲明一下順序表
 
typedef struct SeqList contact;
//要實(shí)現(xiàn)的是通訊錄,所以得把順序表?yè)Q個(gè)名,但換湯不換藥
 
typedef struct PersonInfo
{
	char name[NAME_MAX];      //姓名
	int age;                  //年齡
	char gender[GENDER_MAX];  //性別
	char telephone[TEL_MAX];  //電話(huà)
	char address[ADDR_MAX];   //住址
}Info;
 
void InitContact(contact* pcon);//初始化通訊錄
 
void DestoryContact(contact* pcon);//銷(xiāo)毀通訊錄
 
int FindByName(contact* pcon, char* name);//通過(guò)姓名查找聯(lián)系人
 
void AddContact(contact* pcon);//添加聯(lián)系人
 
void DelContact(contact* pcon);//刪除聯(lián)系人
 
void ModifyContact(contact* pcon);//修改聯(lián)系人信息
 
void FindContact(contact* pcon);//查找聯(lián)系人
 
void ShowContact(contact* pcon);//展示聯(lián)系人列表
 
void ClearContact(contact* pcon);//清空通訊錄
 
void SaveContact(contact* pcon);//保存通訊錄
 
void LoadContact(contact* pcon);//載入歷史通訊錄

1.2.4 Contact.c

#include "SeqList.h"
 
void InitContact(contact* pcon)//初始化通訊錄
{
	SeqListInit(pcon);
}
 
void DestoryContact(contact* pcon)//銷(xiāo)毀通訊錄
{
	SeqListDestory(pcon);
}
 
int FindByName(contact* pcon, char* name)//通過(guò)姓名查找聯(lián)系人
{
	for (size_t i = 0; i < pcon->size; i++)
	{
		if (strcmp(name, pcon->a[i].name) == 0)
		{
			return i;
		}
	}
	return -1;
}
 
void AddContact(contact* pcon)//添加聯(lián)系人
{
	CheckCapacity(pcon);
 
	printf("請(qǐng)輸入姓名:\n");
	scanf("%s", pcon->a[pcon->size].name);
	printf("請(qǐng)輸入年齡:\n");
	scanf("%d", &(pcon->a[pcon->size].age));
	printf("請(qǐng)輸入性別:\n");
	scanf("%s", pcon->a[pcon->size].gender);
	printf("請(qǐng)輸入電話(huà):\n");
	scanf("%s", pcon->a[pcon->size].telephone);
	printf("請(qǐng)輸入住址:\n");
	scanf("%s", pcon->a[pcon->size].address);
 
	pcon->size++;
 
	system("cls");
	printf("添加成功!\n");
}
 
void DelContact(contact* pcon)//刪除聯(lián)系人
{
	char name[100];
	printf("請(qǐng)輸入要?jiǎng)h除的聯(lián)系人:\n");
	scanf("%s", name);
 
	int index = FindByName(pcon, name);
	if (index == -1)
	{
		printf("要?jiǎng)h除的用戶(hù)不存在!\n");
		return;
	}
	SeqListErase(pcon, index);
 
	system("cls");
	printf("刪除成功!\n");
}
 
void ModifyContact(contact* pcon)//修改聯(lián)系人信息
{
	char name[100];
	printf("請(qǐng)輸入要修改的聯(lián)系人:\n");
	scanf("%s", name);
 
	int index = FindByName(pcon, name);
	if (index == -1)
	{
		printf("要修改的用戶(hù)不存在!\n");
		return;
	}
 
	printf("請(qǐng)輸入修改后的姓名:\n");
	scanf("%s", pcon->a[index].name);
	printf("請(qǐng)輸入修改后的年齡:\n");
	scanf("%d", &(pcon->a[index].age));
	printf("請(qǐng)輸入修改后的性別:\n");
	scanf("%s", pcon->a[index].gender);
	printf("請(qǐng)輸入修改后的電話(huà):\n");
	scanf("%s", pcon->a[index].telephone);
	printf("請(qǐng)輸入修改后的住址:\n");
	scanf("%s", pcon->a[index].address);
 
	system("cls");
	printf("修改成功!\n");
}
 
void FindContact(contact* pcon)//查找聯(lián)系人
{
	char name[100];
	printf("請(qǐng)輸入要查找的聯(lián)系人:\n");
	scanf("%s", name);
 
	int index = FindByName(pcon, name);
	if (index == -1)
	{
		printf("要查找的用戶(hù)不存在!\n");
		return;
	}
 
	system("cls");
 
	printf("查找成功!\n");
	printf("姓名:%s\n", pcon->a[index].name);
	printf("年齡:%d\n", pcon->a[index].age);
	printf("性別:%s\n", pcon->a[index].gender);
	printf("電話(huà):%s\n", pcon->a[index].telephone);
	printf("住址:%s\n", pcon->a[index].address);
}
 
void ShowContact(contact* pcon)//展示聯(lián)系人列表
{
	if (pcon->size == 0)
	{
		printf("通訊錄為空!\n");
		return;
	}
	printf("姓名 年齡 性別 電話(huà) 地址\n");
	for (size_t i = 0; i < pcon->size; i++)
	{
		printf("%s %d %s %s %s\n",
			pcon->a[i].name,
			pcon->a[i].age,
			pcon->a[i].gender,
			pcon->a[i].telephone,
			pcon->a[i].address);
	}
}
 
void ClearContact(contact* pcon)//清空通訊錄
{
	pcon->size = 0;
	printf("通訊錄清空成功!\n");
}
 
void SaveContact(contact* pcon)//保存通訊錄
{
	FILE* pf = fopen("contact.txt", "wb");
	if (pf == NULL)
	{
		perror("fopen fail");
		return;
	}
	for (size_t i = 0; i < pcon->size; i++)
	{
		fwrite(pcon->a + i, sizeof(Info), 1, pf);
	}
	printf("通訊錄數(shù)據(jù)保存成功!\n");
	fclose(pf);
}
 
void LoadContact(contact* pcon)//載入歷史通訊錄
{
	FILE* pf = fopen("contact.txt", "rb");
	if (pf == NULL)
	{
		perror("fopen fail");
		return;
	}
	Info info;
	while (fread(&info, sizeof(Info), 1, pf))
	{
		SeqListPushBack(pcon, info);
	}
	printf("通訊錄數(shù)據(jù)載入成功!\n");
	fclose(pf);
}

1.2.5 test.c

#include "SeqList.h"
 
void Menu()
{
	printf("****************通訊錄******************\n");
	printf("****** 1.添加聯(lián)系人  2.刪除聯(lián)系人 ******\n");
	printf("****** 3.修改聯(lián)系人  4.查找聯(lián)系人 ******\n");
	printf("****** 5.查看通訊錄  6.清空通訊錄 ******\n");
	printf("****** 0.退出通訊錄               ******\n");
	printf("****************************************\n");
}

int main()
{
	contact con;
	InitContact(&con); //初始化通訊錄
	LoadContact(&con); //加載歷史通訊錄
	int option = -1;
	do {
		Menu();
		printf("請(qǐng)選擇:\n");
		scanf("%d", &option);
		system("cls"); //適當(dāng)?shù)那迤量雌饋?lái)更簡(jiǎn)潔
		switch (option)
		{
		case 1:
			//添加聯(lián)系人
			AddContact(&con);
			break;
		case 2:
			//刪除聯(lián)系人
			DelContact(&con);
			break;
		case 3:
			//修改聯(lián)系人
			ModifyContact(&con);
			break;
		case 4:
			//查找聯(lián)系人
			FindContact(&con);
			break;
		case 5:
			//查看通訊錄
			ShowContact(&con);
			break;
		case 6:
			//清空通訊錄
			ClearContact(&con);
			break;
		case 0:
			//退出通訊錄
			printf("通訊錄退出中...\n");
			break;
		default:
			printf("非法操作,請(qǐng)重新輸入\n");
			break;
		}
	} while (option);
	SaveContact(&con); //保存通訊錄
	DestoryContact(&con); //銷(xiāo)毀通訊錄
	return 0;
}

1.3 控制臺(tái)測(cè)試

1.3.1 添加聯(lián)系人

【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言

1.3.2 刪除聯(lián)系人

【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言

1.3.3 修改聯(lián)系人

【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言

1.3.4 查找聯(lián)系人

【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言

1.3.5 清空通訊錄

【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言

1.3.6 通訊錄讀檔和存檔

【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言

2. 好題測(cè)驗(yàn)

2.1 好題展示

【經(jīng)典算法OJ題1|移除元素】

【經(jīng)典算法OJ題2|合并兩個(gè)有序數(shù)組】

2.2 答案解析

【移除元素】

int removeElement(int* nums, int numsSize, int val) 
{
      int left = 0;
      for(int right = 0; right < numsSize; right++)
      {
        if(nums[right] != val)
        {
            nums[left] = nums[right];
            left++;
        }
      }  
      return left;
}

【合并兩個(gè)有序數(shù)組】

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) 
{
    int p1 = 0, p2 = 0;
    int sorted[m + n];
    int cur;
    while (p1 < m || p2 < n) 
    {
        if (p1 == m) 
        {
            cur = nums2[p2++];
        } 
        else if (p2 == n) 
        {
            cur = nums1[p1++];
        } 
        else if (nums1[p1] < nums2[p2])
        {
            cur = nums1[p1++];
        } 
        else 
        {
            cur = nums2[p2++];
        }
        sorted[p1 + p2 - 1] = cur;
    }
    for (int i = 0; i != m + n; ++i) 
    {
        nums1[i] = sorted[i];
    }
}

結(jié)語(yǔ)

以上就是小編對(duì)順序表應(yīng)用的講解。
如果覺(jué)得小編講的還可以,還請(qǐng)一鍵三連?;ト鼗?!
持續(xù)更新中~!
【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用,【數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)學(xué)習(xí)】,數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-853116.html

到了這里,關(guān)于【數(shù)據(jù)結(jié)構(gòu)|C語(yǔ)言版】順序表應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C語(yǔ)言---數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)---順序表的合并---鏈表的基本操作---重點(diǎn)解析約瑟夫問(wèn)題

    C語(yǔ)言---數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)---順序表的合并---鏈表的基本操作---重點(diǎn)解析約瑟夫問(wèn)題

    實(shí)驗(yàn)的寫(xiě)法多種多樣,但本文并未采用 #define 定義容量的寫(xiě)法,這樣寫(xiě)已經(jīng)是很老舊過(guò)時(shí)的寫(xiě)法。所有實(shí)驗(yàn)主體采用均為動(dòng)態(tài)開(kāi)辟,后續(xù)如果利用 C++ 來(lái)寫(xiě)或許會(huì)應(yīng)用更多語(yǔ)法… 本篇展示數(shù)據(jù)結(jié)構(gòu)的兩個(gè)實(shí)驗(yàn) 其中,重點(diǎn)分析約瑟夫問(wèn)題 實(shí)驗(yàn)中代碼的命名風(fēng)格等均與下方博客

    2024年02月16日
    瀏覽(96)
  • 數(shù)據(jù)結(jié)構(gòu)入門(mén)(C語(yǔ)言版)二叉樹(shù)的順序結(jié)構(gòu)及堆的概念及結(jié)構(gòu)實(shí)現(xiàn)應(yīng)用

    數(shù)據(jù)結(jié)構(gòu)入門(mén)(C語(yǔ)言版)二叉樹(shù)的順序結(jié)構(gòu)及堆的概念及結(jié)構(gòu)實(shí)現(xiàn)應(yīng)用

    普通的二叉樹(shù)是不適合用數(shù)組來(lái)存儲(chǔ)的,因?yàn)榭赡軙?huì)存在大量的空間浪費(fèi)。而完全二叉樹(shù)更適合使用順序結(jié)構(gòu)存儲(chǔ)。現(xiàn)實(shí)中我們通常把堆(一種二叉樹(shù))使用 順序結(jié)構(gòu)的數(shù)組來(lái)存儲(chǔ) ,需要注意的是 這里的堆和操作系統(tǒng)虛擬進(jìn)程地址空間中的堆是兩回事 ,一個(gè)是 數(shù)據(jù)結(jié)構(gòu) ,一

    2023年04月19日
    瀏覽(28)
  • 數(shù)據(jù)結(jié)構(gòu)---順序表,鏈表

    數(shù)據(jù)結(jié)構(gòu)---順序表,鏈表

    目錄 前言 線(xiàn)性表 線(xiàn)性表的概念 順序表 順序表的概念 順序表的結(jié)構(gòu) 接口實(shí)現(xiàn) 相關(guān)面試題分析 順序表的問(wèn)題及思考 鏈表 鏈表的概念及結(jié)構(gòu) 鏈表的分類(lèi) 單鏈表的實(shí)現(xiàn)? 接口實(shí)現(xiàn)? 鏈表面試題 雙向鏈表 順序表和鏈表的區(qū)別 ? ? ? ? 這篇文章主要講順序表和鏈表,有幾點(diǎn)需要

    2024年02月16日
    瀏覽(21)
  • 【數(shù)據(jù)結(jié)構(gòu)】順序表和鏈表

    【數(shù)據(jù)結(jié)構(gòu)】順序表和鏈表

    線(xiàn)性表(linear list)是n個(gè)具有相同特性的數(shù)據(jù)元素的有限序列。 線(xiàn)性表是一種在實(shí)際中廣泛使 用的數(shù)據(jù)結(jié)構(gòu),常見(jiàn)的線(xiàn)性表:順序表、鏈表、棧、隊(duì)列、字符串... 線(xiàn)性表在邏輯上是線(xiàn)性結(jié)構(gòu),也就說(shuō)是連續(xù)的一條直線(xiàn)。但是在物理結(jié)構(gòu)上并不一定是連續(xù)的, 線(xiàn)性表在物理上

    2024年01月20日
    瀏覽(156)
  • 數(shù)據(jù)結(jié)構(gòu)(二)----線(xiàn)性表(順序表,鏈表)

    數(shù)據(jù)結(jié)構(gòu)(二)----線(xiàn)性表(順序表,鏈表)

    目錄 1.線(xiàn)性表的概念 2.線(xiàn)性表的基本操作 3.存儲(chǔ)線(xiàn)性表的方式 (1)順序表 ?順序表的概念 ?順序表的實(shí)現(xiàn) 靜態(tài)分配: 動(dòng)態(tài)分配: 順序表的插入: 順序表的刪除: 順序表的按位查找: 順序表的按值查找: 順序表的特點(diǎn): (2)單鏈表 ?單鏈表的實(shí)現(xiàn) 不帶頭結(jié)點(diǎn)的單鏈表

    2024年04月16日
    瀏覽(40)
  • 數(shù)據(jù)結(jié)構(gòu)2:順序表和鏈表

    數(shù)據(jù)結(jié)構(gòu)2:順序表和鏈表

    目錄 1.線(xiàn)性表 2.順序表 2.1概念及結(jié)構(gòu) 2.2接口實(shí)現(xiàn) 2.3數(shù)據(jù)相關(guān)面試題 2.4順序表的問(wèn)題及思考 3.鏈表 3.1鏈表的概念及結(jié)構(gòu) 3.2鏈表的分類(lèi) 3.3鏈表的實(shí)現(xiàn) 3.4鏈表面試題 3.5雙向鏈表的實(shí)現(xiàn) 4.順序表和鏈表的區(qū)別 線(xiàn)性表(linear list)是具有相同特征的數(shù)據(jù)元素的有限序列。線(xiàn)性表是

    2023年04月17日
    瀏覽(93)
  • 《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告二:順序表 鏈表

    《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告二:順序表 鏈表

    1、掌握線(xiàn)性表中元素的 前驅(qū)、后續(xù) 的概念。 2、掌握順序表與鏈表的 建立 、 插入 元素、 刪除 表中某元素的算法。 3、對(duì)線(xiàn)性表相應(yīng)算法的 時(shí)間復(fù)雜度 進(jìn)行分析。 4、理解順序表、鏈表數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)( 優(yōu)缺點(diǎn) )。 說(shuō)明以下概念 1、線(xiàn)性表: ? ? ? ? 具有 相同特性 的數(shù)

    2024年02月08日
    瀏覽(31)
  • 常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)(順序表、順序表、鏈表、棧、隊(duì)列、二叉樹(shù))

    常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)(順序表、順序表、鏈表、棧、隊(duì)列、二叉樹(shù))

    線(xiàn)性表(Linear List) ? ? 1.什么是線(xiàn)性表 ? ? 2.線(xiàn)性表的特點(diǎn) ? ? 3.線(xiàn)性表的基本運(yùn)算 順序表 ? ? 1.什么是順序表 ? ? 2.時(shí)間復(fù)雜度: 鏈表 ? ? 1.什么是鏈表 ? ? 2.單向鏈表 ? ? 3. 雙向鏈表 ? ? 4.ArrayList和LinkedList的使用 棧Stack ? ? 1.什么是棧 ? ? 2.棧的基本方法 隊(duì)列Queue

    2024年02月13日
    瀏覽(52)
  • 數(shù)據(jù)結(jié)構(gòu)中: 一元多項(xiàng)式的運(yùn)算(相加,相減,相乘)------用C語(yǔ)言 / C++來(lái)實(shí)現(xiàn)。 數(shù)據(jù)結(jié)構(gòu)線(xiàn)性表的操作和應(yīng)用(順序存儲(chǔ))

    數(shù)據(jù)結(jié)構(gòu)中: 一元多項(xiàng)式的運(yùn)算(相加,相減,相乘)------用C語(yǔ)言 / C++來(lái)實(shí)現(xiàn)。 數(shù)據(jù)結(jié)構(gòu)線(xiàn)性表的操作和應(yīng)用(順序存儲(chǔ))

    線(xiàn)性表的操作和應(yīng)用(順序存儲(chǔ))。用順序存儲(chǔ)實(shí)現(xiàn)一元多項(xiàng)式,并進(jìn)行加、減、乘運(yùn)算。 (1)一元多項(xiàng)式結(jié)構(gòu)體創(chuàng)建? (2)初始化 (3)一元多項(xiàng)式賦值? ? ? ? ? ? ?(4)打印一元多項(xiàng)式 (5)加法運(yùn)算? ? ? ? ? ? ? ? ? ? ? ? (6)減法運(yùn)算 (7)乘法運(yùn)算 ? ?全部代

    2024年02月01日
    瀏覽(98)
  • 數(shù)據(jù)結(jié)構(gòu),隊(duì)列,順序表隊(duì)列,鏈表隊(duì)列

    ????????隊(duì)列是一種常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),它具有先進(jìn)先出(First-In-First-Out,F(xiàn)IFO)的特性,類(lèi)似于排隊(duì)等候的場(chǎng)景。以下是隊(duì)列的要點(diǎn): 1. 定義:隊(duì)列是一種線(xiàn)性數(shù)據(jù)結(jié)構(gòu),由一系列元素組成,可以進(jìn)行插入和刪除操作。插入操作(稱(chēng)為入隊(duì))只能在隊(duì)列的末尾進(jìn)行,刪除操

    2024年02月11日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包