順序表詳解

2021-08-11 02:48:49 字數 2125 閱讀 4924

定長順序表定義:

#pragma once

#define size 10

typedef struct seqlist

seqlist,*pseqlist;

操作:

//初始化  長度置0即可

void initseqlist(pseqlist ps)

//插入:在pos位置上插入元素val(從pos開始,後面的資料都後移一位,pos位置值置成val,長度加1)

bool insertseqlist(pseqlist ps,int pos,int val)

ps->elem[pos]=val;

ps->length++;

return true;

}//查詢:遍歷ps,在ps上查詢key,返回其下標,沒找到返回-1(順序表是用陣列實現的,陣列內沒有為-1的下標)

int searchseqlist(pseqlist ps,int key)

return -1;//該函式返回元素下標,用-1標誌沒有找到,因為沒有元素下標是-1

}//刪除:遍歷ps,刪除值為key的結點,長度減一,找到返回true,沒找到返回false

bool deleteval(pseqlist ps,int key)

ps->length--;

return true;*/

return deletepos(ps,index);

}//刪除:刪除ps中下標為pos的結點,長度減一,如果下標不合法,返回false

bool deletepos(pseqlist ps,int pos)

ps->length--;

return true;

}//返回有效資料個數length

int getlength(pseqlist ps)

//判空,判斷有效資料個數是否為0

bool isempty(pseqlist ps)

//調destory()

void clear(pseqlist ps)

//銷毀,有效資料個數置0

void destory(pseqlist ps)

//輸出函式,遍歷順序表,乙個乙個列印

void show(pseqlist ps)

printf("\n");

}//返回下標為pos的值,下標不合法,返回false,用rtval帶出要得到的值

bool getelem(pseqlist ps,int pos,int *rtval)

//有序順序表中插入val,順序表人有序

//(在ps中找第乙個比val大的結點,這就是val要插入的位置,從該點起,後面資料都後移一位,長度加1)

void insert(pseqlist ps,int val)

ps->length++;

for(int j=ps->length-1;j>=i;j--)

ps->elem[i]=val;

}//順序表比較(跟字串比較相似),先判斷有空順序表的情況,在判斷都不為空的情況

int compareseqlist(pseqlist ps1,pseqlist ps2)

if(ps1->length>len)

else if(ps2->length>len)

else

return 0;

}}//逆置,(跟字串逆置相似)

//順序表表頭結點值與順序表表尾結點值進行交換,然後第二個節點值與倒數第二個結點值交換,依次

void rev(pseqlist ps)

}//刪除ps1中ps2ps3都有的元素

//先找到ps2和ps3共有的元素,遍歷ps1,若有,刪掉

void dele(pseqlist ps1,pseqlist ps2,pseqlist ps3)

}}//合併ps1,ps2(將ps2中資料乙個乙個插入ps1)

void bing(pseqlist ps1,pseqlist ps2)

}}

不定長順序表定義:

typedef struct dseqlist

dseqlist,*pdseqlist;

與定常順序表的區別在於,當順序表滿了會自動二倍的擴容

順序表 順序表定位

這兩個題本質一模一樣,唯一不同的是本題利用 順序表 將陣列a包裝了起來。在遍歷的過程中,拿順序表的資料去和x比對,若相同,返回當前下標值,若到了最後乙個資料元素都不相同,就返回 1 1.遍歷順序表 2.挨個比對資料元素 prism lang c include const int max 20 設定...

順序表專題 1 順序表

順序表的實現 元素儲存區操作 需求 將一組 通常是同一型別 的幾個資料元素作為乙個整體管理和使用,需要建立這種元素的組,並用變數對他們進行記錄。這樣一組資料的元素個數可能發生變化 因為增刪改查等操作 對於這種需求,最簡單的解決方式是將這組元素視為乙個序列,可以將這個結構抽象為線性表。乙個線性表是某類...

PTA 6 2 順序表操作集 詳解

list makeempty position find list l,elementtype x bool insert list l,elementtype x,position p bool delete list l,position p 其中list結構定義如下 typedef int p...