順序表經典面試題

2021-07-25 14:16:32 字數 3184 閱讀 6362

標頭檔案如下:

#include

#include

#include

#ifndef _seqlist_h_

#define _seqlist_h_

// 實現順序表的以下介面

typedef int datatype;

#define maxsize 10

typedef struct seqlist

seqlist;

//////

//////

//////

//////

//////

////////

// 初始化順序表

void initseqlist(seqlist* pseq);

// 在順序表的尾部插入值為data的元素

void pushback(seqlist* pseq, datatype _data);

// 刪除順序表的最後乙個元素

void popback(seqlist* pseq);

// 在順序表的頭部插入值為data的元素

void pushfront(seqlist* pseq, datatype data);

// 刪除順序表頭部元素

void popfront(seqlist* pseq);

// 在順序表中pos位置上插入值為data的元素

void insert(seqlist* pseq, size_t pos, datatype data);

// 刪除順序表中pos位置上的元素

void erase(seqlist* pseq, size_t pos);

// 在順序表中查詢值為data的元素,找到返回該元素的位置,否則返回-1

int find(seqlist* pseq, datatype data);

// 刪除順序表中第乙個值為data的元素

void remove(seqlist* pseq, datatype data);

// 刪除順序表中所有值為data的元素

void removeall(seqlist* pseq, datatype data);

// 使用氣泡排序給順序表中的元素排序

void bubblesort(seqlist* pseq);

// 使用選擇排序給順序表中的元素排序

void selectsort(seqlist* pseq);

// 使用二分查詢在順序表中查詢值為data

int binarysearch(seqlist* pseq, datatype data);

//列印順序表中所有元素

void showseqlist(seqlist* pseq);

#endif

實現原始檔:

#include"seqlist.h"

//初始化順序表

void initseqlist(seqlist* pseq)

// 在順序表的尾部插入值為data的元素

void pushback(seqlist* pseq, datatype _data)

pseq->array[pseq->size] = _data;

pseq->size++;

}// 刪除順序表的最後乙個元素

void popback(seqlist* pseq)

pseq->size--;

}// 在順序表的頭部插入值為data的元素

void pushfront(seqlist* pseq, datatype data)

for (idx = pseq->size - 1; idx >= 0; idx--)

pseq->array[0] = data;

pseq->size++;

}// 刪除順序表頭部元素

void popfront(seqlist* pseq)

for (idx = 1; idx < pseq->size; idx++)

pseq->size--;

}//列印順序表中所有元素

void showseqlist(seqlist* pseq)

printf("\n");

}// 在順序表中pos位置上插入值為data的元素

void insert(seqlist* pseq, size_t pos, datatype data)

for (idx =pseq->size-1; idx >=pos; idx--)

pseq->array[pos] = data;

pseq->size++;

}// 刪除順序表中pos位置上的元素

void erase(seqlist* pseq, size_t pos)

for (idx = pos; idx < pseq->size; idx++)

pseq->size--;

}// 在順序表中查詢值為data的元素,找到返回該元素的位置,否則返回-1

int find(seqlist* pseq, datatype data)

}return -1;

}// 刪除順序表中第乙個值為data的元素

void remove(seqlist* pseq, datatype data)

pseq->size--;

return;}}

}// 刪除順序表中所有值為data的元素

void removeall(seqlist* pseq, datatype data)

pseq->size--;

idx--;}}

}// 使用氣泡排序給順序表中的元素排序

void bubblesort(seqlist* pseq)

}if (flag != 0)

}}// 使用選擇排序給順序表中的元素排序

void selectsort(seqlist* pseq)}}

}// 使用二分查詢降序排列中的元素

int binarysearch(seqlist* pseq, datatype data)

else

if (data>pseq->array[mid])

else

mid = (left + right) / 2;

}return -1;

}int main()

經典面試題

1.以下三條輸出語句分別輸出什麼?char str1 abc char str2 abc const char str3 abc const char str4 abc const char str5 abc const char str6 abc cout boolalpha str1 str2 ...

經典面試題

我的老同學現在富得流油。他開創了乙個軟體公司,開發了一系列軟體,生意越做越大。今天他來到這個城市後馬上打 給我。是我啊!聽出來了嗎?是這樣的,我到這兒的大學招畢業生,要在這兒呆上五天,咱哥們趁這個時間好好聚一聚。我做東!既然他要做東,我理所當然順水推舟。人家是老闆,不吃白不吃!我來到他下榻的賓館,看...

經典面試題

分兩個情況 perfork模式 worker模式 前者程序模式 後者執行緒模式 故檢視方法也有區別 oldboy.log 參考 分析 此類問題是運維工作中最常見的問題。可以演變成分析日誌,檢視tcp各個狀態連線數,檢視單ip連線數排名等等 第一類 過濾網域名稱方法 方法很多 這裡給出六種為例。還可以...