(部分基於之前的**)
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...