資料結構習題(1) 單鏈表

2021-09-30 17:01:07 字數 935 閱讀 2579

(部分基於之前的**) 

1.設順序表va中的資料元素遞增有序。

試寫一演算法,將x插入到順序表的適當位置上,以保持該錶的有序性。

int insertsort(pdseqlist pl,elem_type val)

int index = 0;

for(int i = 0; i < pl->cursize; ++i) }

//insertpos(pl,index,val);

if(isfull(pl))

for(int i = pl->cursize -1; i >= index; i--)

pl->elem[index] = val;

pl->cursize++;

return true;

}

2.試寫一演算法,實現順序表的就地逆置,即利用原表的儲存空間將線性表 逆置為

void reverse(pdseqlist pl)

for(int i = 0; i < pl->cursize/2; i++)

}

3.兩個順序表遞增有序,執行 c=aub,演算法時間複雜度要求為o(n+m)

(a,b這兩個順序表只允許遍歷一遍);

void merge(pdseqlist pa,pdseqlist pb,pdseqlist pc)

int indexa = 0;

int indexb = 0;

int indexc = 0;

while(indexa < pa->cursize && indexb < pb->cursize)

else

}if(indexa == pa->cursize) }

if(indexb == pb->cursize) }

}

回顧資料結構(1) 單鏈表

1.鍊錶的結點由資料域和指標域構成 定義鍊錶結構 typedef struct lnodenode,linklist 2.建立鍊錶 建立鍊錶 status createlinklist linklist l,int n return ok 3.獲取鍊錶中某一項 獲取元素 status getitem...

浙大資料結構習題1 單鏈表分段逆轉

題目概述 給定乙個帶頭結點的單鏈表和乙個整數k,要求你將鍊錶中的每k個結點做一次逆轉。例如給定單鏈表 1 2 3 4 5 6 和 k 3,你需要將鍊錶改造成 3 2 1 6 5 4 如果 k 4,則應該得到 4 3 2 1 5 6 資料形式 typedef struct node ptrtonode...

資料結構 單鏈表相關習題3

解題思路 兩煉表若相交,則其最後乙個節點必定相同。所以遍歷得出兩鍊錶的尾節點可得知兩鍊錶是否相交。若兩鍊錶相交,則求出兩鍊錶長度,相減得其差值len。較長鍊錶先向後遍歷len次,隨後兩鍊錶同時向後遍歷。直到出現兩值相同時,該節點即為相交點。判定兩個鍊錶是否相交,並求出交點 linknode hasc...