靜態順序表

2021-08-18 08:26:05 字數 4145 閱讀 3347

靜態順序表練習

#pragma once

#include

#include

#define max_size 10

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

////////

typedef int datatype;

typedef struct seqlist

seqlist;

seqlist s;

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//void seqlistinit(seqlist *ps); //結構體初始化

void seqlistpush(seqlist *ps, int data); //新增資料

void seqlistpushfront(seqlist *ps, int data); //頭插

void seqlistpopfront(seqlist *ps); //頭刪

void seqlistpushback(seqlist *ps, int data); //尾插

void seqlistpopback(seqlist *ps); //尾刪

void seqlistinsert(seqlist *ps, int pos, int data); //隨機插

void seqlistremove(seqlist *ps, int data); //刪除乙個data資料

void seqlistremoveall(seqlist *ps, int data); //刪除所有data資料

void bubblesort(seqlist *ps); //氣泡排序

void selectsort(seqlist *ps); //選擇排序

int seqlistfind(seqlist *ps, int data); //查詢資料

void swop(int *p, int*q); //交換

int binarysearch(seqlist *ps, int data); //二分查詢

void seqlistprint(seqlist *ps); //列印

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

////結構體初始化

void seqlistinit(seqlist *ps)

ps->_size = 0;

}//新增資料

void seqlistpush(seqlist *ps, int data)

ps->_array[ps->_size] = data;

ps->_size++;

}//頭插

void seqlistpushfront(seqlist *ps, int data)

if (10 == ps->_size)

#if 0

for (i = ps->_size; i >0; i--)

ps->_array[i] = ps->_array[i-1];

ps->_array[0] = data;

ps->_size++;

#endif

seqlistinsert(&s, 0, data);

}//頭刪

void seqlistpopfront(seqlist *ps)

for (i = 0; i < ps->_size - 1; i++)

ps->_size--;

}//尾插

void seqlistpushback(seqlist *ps, int data)

if (10 == ps->_size)

#if 0

ps->_array[ps->_size] = data;

ps->_size++;

#endif

seqlistinsert(&s, ps->_size, data);

}//尾刪

void seqlistpopback(seqlist *ps)

ps->_size--;

}//列印

void seqlistprint(seqlist *ps)

if (0 == ps->_size)

printf("size: %d\n", ps->_size);

for (i = 0; i < ps->_size; i++)

putchar('\n');

}//隨機插

void seqlistinsert(seqlist *ps, int pos, int data)

if (10 == ps->_size)

for (i = ps->_size; i >pos; i--)

ps->_array[pos] = data;

ps->_size++;

}//查詢資料

int seqlistfind(seqlist *ps, int data)

for (i = 0; i < ps->_size; i++)

}}//二分查詢

int binarysearch(seqlist *ps, int data)

else

if (data > ps->_array[mid])

else

}return -1;

}//刪除乙個data的資料

void seqlistremove(seqlist *ps, int data)

i = seqlistfind(&s, data);

for (j = i; j _size; j++)

#if 0

for (i = 0; i < ps->_size; i++)}}

#endif

ps->_size--;

}//刪除所有data資料

void seqlistremoveall(seqlist *ps, int data)

for (i = 0; i < ps->_size; i++)

else

}ps->_size -= count;

}//氣泡排序

void bubblesort(seqlist *ps)

for (i = 0; i < ps->_size - 1; i++)}}

}//交換資料

void swop(int *p, int *q)

tmp = *p;

*p = *q;

*q = tmp;

}//選擇排序

void selectsort(seqlist *ps)

for (i = 0; i < ps->_size; i++)

swop(&ps->_array[max], &ps->_array[ps->_size - i - 1]);

}}

#include 

#include "seqlist.h"

int main()

靜態順序表

在書上看到的,學習學習。題目 建立乙個靜態的順序表存放整數,大小為10,完成以下操作。1 輸入6個整數,列印出順序表中的內容,並顯示表中的剩餘的空間個數。2 在順序表中的第3個位置插入元素0,列印出順序表中的內容,並顯示表中剩餘的空間個數。3 再試圖插入表中第11個位置整數0,程式提示超出範圍。4 ...

靜態順序表

最近在學習資料結構的單鏈表部分,於是寫了乙個靜態順序表做練習。實現了對其初始化 新增 更改 刪除等功能的實現。seqlist.h pragma once define seq list ifdef seq list include include include define maxsize 100...

靜態順序表

順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。include stdio.h include stdlib.h elemtyp...