動態鍊錶增刪改查及排序功能

2021-07-03 12:09:52 字數 2812 閱讀 3661

主要功能的實現:

#include "seqlist.h"

void initseqlist(seqlist * pseq)//初始化

void printseqlist(seqlist* pseq)//列印

printf("\n");

}void checkexpandcapicity(seqlist* pseq)//檢查容量

}void pushfront(seqlist* pseq, datatype x)//頭插

pseq->array[0] = x;

pseq->size++;

}void popfront(seqlist* pseq)//頭刪

pseq->size--;

}void pushback(seqlist* pseq, datatype x)//尾插

void popback(seqlist* pseq)//尾刪

void insert(seqlist* pseq, size_t index, datatype x)//在index位置插入

pseq->array[index] = x;

pseq->size++;

}void modify(seqlist* pseq, size_t index, datatype x)//修改

void remove(seqlist* pseq, size_t index)//刪除index位置的數

pseq->size--;

}void swap(datatype* left, datatype* right)

void bubblesort(seqlist* pseq)//氣泡排序

} if (exchange == 0)

}}void selectsort(seqlist* pseq)//選擇排序

} if (minindex != begin)

}}findret binarysearch(seqlist* pseq, datatype x)//二分查詢

else if (x>pseq->array[middle])

left = middle + 1;

else

right = middle - 1;

} return ret;

}

標頭檔案:

#pragma once

#define default_capicity 3

typedef int datatype;

#include#include#include#includetypedef struct seqlist

seqlist;

typedef enum tag

tag;

typedef struct findret

findret;

void initseqlist(seqlist *pseq);

void printseqlist(seqlist *pseq);

void checkexpandcapicity(seqlist* pseq);

void pushfront(seqlist *pseq, datatype x);

void popfront(seqlist *pseq);

void pushback(seqlist *pseq, datatype x);

void popback(seqlist *pseq);

void insert(seqlist *pseq, size_t index, datatype x);

void modify(seqlist *pseq, size_t index, datatype x);

void remove(seqlist *pseq, size_t index);

void swap(datatype* left, datatype* right);

void bubblesort(seqlist* pseq);

void selectsort(seqlist* pseq);

findret binarysearch(seqlist* psep, datatype x);

測試程式部分:

#include "seqlist.h"

void test1()//測試初始化、列印、尾插/尾刪

void test2()//測試頭插、頭刪

void test3()//測試在index位置插入、修改index位置的值、刪除index位置的值

void test4()//測試氣泡排序

void test5()//測試選擇排序

void test6()//測試二分搜尋

else

printf("find failed!\n");

x = 8;

ret = binarysearch(&s, x);

if (ret.isfind == true)

else

printf("find failed!\n");

x = 1;

ret = binarysearch(&s, x);

if (ret.isfind == true)

else

printf("find failed!\n");

x = 5;

ret = binarysearch(&s, x);

if (ret.isfind == true)

else

printf("find failed!\n");

}int main()

原生js案例 增 刪 改 查 排序功能

新增確定修改 排序全部刪除 搜尋姓名 年齡操作 show add click function else ajax success function res else function show 渲染2 function showdom arr 刪除 修改 tbody html str 刪除 fun...

mysql增刪改查鍊錶 鍊錶的增刪改查

include include 先定義鍊錶裡面的元素。typedef struct nodemynode 定義整個鍊錶。typedef struct linkmylink int isempty to mylink mylink mylink 判斷鍊錶是否為空。int push to mylinki...

鍊錶 增刪改查

實現 鍊錶的增刪改查 package com.baicai.linkedlist public class singlinkedlistdome 定義乙個singlinkedlist管理我們的英雄 class singlelinkedlist 如果沒有找到最後的乙個節點就直接往後面找 temp te...