在一个长度为n的顺序表中删除第i个元素时,需向前移动 多少个元素。 在一个长度为n的顺序表中删除第i个元素时,需向前移动多少个元...

\u5728\u4e00\u4e2a\u957f\u5ea6\u4e3an\u7684\u987a\u5e8f\u8868\u4e2d\u5220\u9664\u7b2ci\u4e2a\u5143\u7d20\u65f6\uff0c\u9700\u5411\u524d\u79fb\u52a8\u591a\u5c11\u4e2a\u5143\u7d20

\u9700\u5411\u524d\u79fb\u52a8n-i\u4e2a\u5143\u7d20\u3002
\u5728\u4e00\u4e2a\u957f\u5ea6\u4e3an\u7684\u987a\u5e8f\u8868\u4e2d\uff0c\u5220\u9664\u4e00\u4e2a\u5143\u7d20\u65f6\uff0c\u6709n\u4e2a\u4f4d\u7f6e\u53ef\u4f9b\u9009\u62e9\u3002\u9700\u8981\u6539\u53d8\u4ece\u7b2c i+1\u4e2a\u5143\u7d20\u8d77\u5230\u7b2cn\u4e2a\u5143\u7d20\u7684\u5b58\u50a8\u4f4d\u7f6e\uff0c\u5373\u8fdb\u884c\u201c\u4ece\u7b2ci+1\u5230\u7b2cn\u4e2a\u5143\u7d20\u5f80\u524d\u79fb\u52a8\u4e00\u4e2a\u4f4d\u7f6e\u201d\uff0c\u5171\u9700\u79fb\u52a8n-i\u4e2a\u5143\u7d20\u3002
\u53ea\u8981\u786e\u5b9a\u4e86\u8d77\u59cb\u4f4d\u7f6e\uff0c\u8868\u4e2d\u4efb\u4e00\u5143\u7d20\u7684\u5730\u5740\u90fd\u901a\u8fc7\u4e0b\u5217\u516c\u5f0f\u5f97\u5230\uff1aLOC\uff08ai\uff09=LOC\uff08a1\uff09+\uff08i-1\uff09*L \u30001\u2264i\u2264n \u5176\u4e2d\uff0cL\u662f\u5143\u7d20\u5360\u7528\u5b58\u50a8\u5355\u5143\u7684\u957f\u5ea6\u3002



\u6269\u5c55\u8d44\u6599\uff1a
\u5982\u987a\u5e8f\u8868\u7684\u6bcf\u4e2a\u7ed3\u70b9\u5360\u7528len\u4e2a\u5185\u5b58\u5355\u5143\uff0c\u7528location (ki)\u8868\u793a\u987a\u5e8f\u8868\u4e2d\u7b2ci\u4e2a\u7ed3\u70b9ki\u6240\u5360\u5185\u5b58\u7a7a\u95f4\u7684\u7b2c1\u4e2a\u5355\u5143\u7684\u5730\u5740\u3002\u5219\u6709\u5982\u4e0b\u7684\u5173\u7cfb:location (ki+1) = location (ki) +len
location (ki) = location(k1) + (i-1)len
\u5b58\u50a8\u7ed3\u6784\u8981\u4f53\u73b0\u6570\u636e\u7684\u903b\u8f91\u7ed3\u6784\uff0c\u987a\u5e8f\u8868\u7684\u5b58\u50a8\u7ed3\u6784\u4e2d\uff0c\u5185\u5b58\u4e2d\u7269\u7406\u5730\u5740\u76f8\u90bb\u7684\u7ed3\u70b9\u4e00\u5b9a\u5177\u6709\u987a\u5e8f\u8868\u4e2d\u7684\u903b\u8f91\u5173\u7cfb\u3002
\u5224\u65ad\u662f\u5426\u4e3a\u7a7a\u8868
Status ListEmpty(SqList L)
{ // \u521d\u59cb\u6761\u4ef6\uff1a\u987a\u5e8f\u7ebf\u6027\u8868L\u5df2\u5b58\u5728\u3002\u64cd\u4f5c\u7ed3\u679c\uff1a\u82e5L\u4e3a\u7a7a\u8868\uff0c\u5219\u8fd4\u56deTRUE\uff0c\u5426\u5219\u8fd4\u56deFALSE
if(L.length==0)
return TRUE;
else
return FALSE;
}

\u9700\u5411\u524d\u79fb\u52a8n-i\u4e2a\u5143\u7d20\u3002
\u5047\u8bbe\u9700\u8981\u79fb\u52a8x\u4e2a\u5143\u7d20\uff1b\u987a\u5e8f\u5143\u7d20\u603b\u6570\u4e3an\uff1bi\u4e4b\u524d\u7684\u5143\u7d20\u4e0d\u9700\u79fb\u52a8\uff0c\u4e0d\u9700\u79fb\u52a8\u7684\u5143\u7d20\u6570\u91cf\u4e3ai-1\uff1b\u987a\u5e8f\u8868\u53bb\u6389i\u5143\u7d20\uff0c\u53bb\u6389\u7684\u5143\u7d20\u6570\u91cf\u4e3a1\u3002
\u6545\u800cx=n-\uff08i-1\uff09-1
\u7ecf\u8ba1\u7b97x=n-i

需向前移动n-i个元素。这个i的范围应当是1≤i≤n+1,是向后移动。

后面的元素ai+1~an都要向上移动一个位置。

如顺序表的每个结点占用len个内存单元,用location (ki)表示顺序表中第i个结点ki所占内存空间的第1个单元的地址。则有如下的关系:location (ki+1) = location (ki) +len。


扩展资料:

插入或删除一个元素,需要移动的是插入或删除元素后面的元素。

由于顺序表的存储特点是:只要确定了起始位置,表中任一元素的地址都通过下列公式得到:LOC(ai)=LOC(a1)+(i-1)*L  1≤i≤n 其中,L是元素占用存储单元的长度。

所以确定了插入或删除元素的位置后,便可算出需要移动的元素个数。



需向前移动n-i个元素。
假设需要移动x个元素;顺序元素总数为n;i之前的元素不需移动,不需移动的元素数量为i-1;顺序表去掉i元素,去掉的元素数量为1。
故而x=n-(i-1)-1
经计算x=n-i

假设n=5,删除第3个元素,第3个元素下标是2,那么需要移动下标为3、4的元素。也就是2个元素,5-3=2。那么答案是n-i

删除第i个元素需要移动从第i+1到第n个,共n-i个元素;
删除下标为i的话是n-i-1个,不知道理解是否正确

对,第i个元素意思是,下角标为i的元素,这样子,删除第n-1个(下角标为n-1)元素时就是n-1-(n-1),删除第i(下角标为i)个元素就是n-1-i

  • 椤哄簭琛鐨勬彃鍏ュ拰鍒犻櫎绠楁硶
    绛旓細3. 灏嗙3涓厓绱4鍚戝悗绉诲姩涓涓綅缃紝鍙樹负[1, 2, _, 4, 5]銆4. 鍦ㄧ3涓綅缃彃鍏ユ柊鍏冪礌3锛屽彉涓篬1, 2, 3, 4, 5]銆5. 椤哄簭琛闀垮害鍔1锛屽彉涓5銆傞『搴忚〃鐨勫垹闄绠楁硶 椤哄簭琛ㄧ殑鍒犻櫎鎿嶄綔鏄寚鍒犻櫎椤哄簭琛ㄤ腑鐨勭i涓厓绱犮備笌鎻掑叆鎿嶄綔绫讳技锛岀敱浜庨『搴忚〃鐨勫瓨鍌ㄧ┖闂存槸杩炵画鐨勶紝鍥犳鍦ㄥ垹闄鍏冪礌鏃讹紝闇瑕...
  • 鍥句腑杩欎袱涓棶棰樹腑i鐨勫彇鍊艰寖鍥翠负浠涔堜細褰卞搷绛旀,鑳借瑙d竴涓嬪悧
    绛旓細1.绗竴绉嶆儏鍐碉紝琛ㄩ『搴鏄粠0寮濮嬫帓锛屽嵆绗竴鏁版潯鎹搴旂殑搴忓彿鏄0锛岄偅闀垮害涓簄鐨勮〃瀵瑰簲鐨勬渶鍚庝竴涓厓绱犲搴旂殑搴忓彿灏辨槸n-1锛屽鏋滃垹闄ゅ簭鍙风i涓厓绱狅紝閭d箣鍚庤繕鏈塶-1-i涓厓绱犺绉诲姩 2.鍚岀悊绗簩绉嶆儏鍐碉紝琛ㄩ『搴忎粠1寮濮嬶紝鏈鍚庝竴涓厓绱犲搴旂殑搴忓彿涓簄锛鍒犻櫎绗i涓厓绱狅紝涔嬪悗杩樻湁n-i涓厓绱 ...
  • 宸茬煡绾挎ц〃A鐨闀垮害涓簄,骞朵笖閲囩敤椤哄簭瀛樺偍缁撴瀯銆傚啓涓绠楁硶,鍒犻櫎绾挎琛ㄤ腑...
    绛旓細(3)绠楁硶 void delx_seq(PSeqListP,DataType x){ /*鍒犻櫎椤哄簭琛ㄤ腑鎵鏈夊间负x鐨勫厓绱狅紝鏂伴『搴忚〃鍙兘涓嶄繚鎸佸師鏈夐『搴*/ int i=0,j=p-锛n-1,count=0;/*i瀹氫綅浜庨『搴忚〃寮濮嬪锛宩瀹氫綅浜庨『搴忚〃鏈鍚*/ while(i锛渏){ if(p-锛瀍lement[i]==x){ /*鎵惧埌浜嗕竴涓鍒犻櫎鐨勫厓绱*/ while((p-锛...
  • 鍦闀垮害涓篘鐨勯『搴忚〃浠,鎻掑叆涓涓鏂板厓绱犲钩鍧囬渶瑕佺Щ鍔琛ㄤ腑___涓厓绱?鍒犻櫎...
    绛旓細鎻掑叆鏃讹紝n/2锛涙彃鍏ユ湯灏撅紝绉诲姩0涓厓绱狅紝鎻掑叆琛ㄩ绉籲涓厓绱犮傚钩鍧囧氨鏄痭/2,锛(0+1+2鈥︹+n)/(n+1)锛屽洜涓烘湁n+1涓綅缃彲渚涙彃鍏ャ鍒犻櫎鏃,鏈灏0涓紝鏈澶歯-1涓紝缁撴灉鏄(0+1+2+鈥︹-1)/n,鍥犱负鏈塶涓厓绱狅紒
  • 鍦ㄧ瓑姒傜巼鎯呭喌涓,鍦闀垮害涓簄鐨勯『搴忚〃涓鎻掑叆鍜鍒犻櫎涓涓缁撶偣闇骞冲潎绉诲姩
    绛旓細琛ㄩ暱鐨勪竴鍗娿傘傘傚叿浣撲笌琛ㄩ暱鍜岃繕鍏冪礌鍦ㄨ〃涓鐨勪綅缃
  • SJTU 銆婄畻娉曡璁′笌鍒嗘瀽銆嬪鑰冮
    绛旓細b. n/2 c. (n-1)/2 d. n 3銆侀噰鐢ㄤ簩鍒嗘煡鎵炬柟娉曟煡鎵闀垮害涓簄鐨绾挎ц〃鏃,姣忎釜鍏冪礌鐨勫钩鍧囨煡鎵鹃暱搴︿负( )銆 a. O(log2n) b. O(n2) c. O(n) d. O(nlog2n) 4銆佽椤哄簭绾挎ц〃涓湁n涓暟鎹厓绱,鍒鍒犻櫎琛ㄤ腑绗i涓厓绱犻渶鍚戝墠绉诲姩( )涓厓绱犮 a. n-1-i b. n-i c. i d. n+1-i 5銆...
  • 寤虹珛闀垮害涓簄鐨勯『搴忚〃SeqList,闀垮害n閫氳繃鍜宯涓暟鎹厓绱犻氳繃閿洏杈撳叆銆俖鐧 ...
    绛旓細寤虹珛闀垮害涓簄鐨勯『搴忚〃SeqList锛闀垮害n閫氳繃鍜宯涓暟鎹厓绱犻氳繃閿洏杈撳叆銆傝姹傦細1锛夐氳繃璋冪敤鎻掑叆鍑芥暟锛屽缓绔涓涓暱搴︿负n鐨勯『搴忚〃绫荤殑瀵硅薄锛屾柊鎻掑叆鐨勫厓绱犲缁堟彃鍏ュ埌绗0鍙蜂綅缃紱2锛夊湪椤哄簭琛⊿eqList涓鍔犱竴涓垹闄ゅ嚱鏁帮紝瑕佹眰鍒犻櫎椤哄簭琛ㄤ腑绛変簬item鐨勬墍鏈夊厓绱犮
  • 鏁版嵁缁撴瀯
    绛旓細___銆1. 绾挎ц〃鏄痏__A___銆侫锛庝竴涓湁闄愬簭鍒楋紝鍙互涓虹┖ B锛庝竴涓湁闄愬簭鍒楋紝涓嶅彲浠ヤ负绌 C锛庝竴涓棤闄愬簭鍒楋紝鍙互涓虹┖ D锛庝竴涓棤闄愬簭鍒楋紝涓嶅彲浠ヤ负绌 2. 鍦ㄤ竴涓暱搴︿负n鐨勯『搴忚〃涓垹闄ょi涓厓绱(0<=i<=n)鏃讹紝闇鍚戝墠绉诲姩 A 涓厓绱犮侫锛巒-i B锛巒-i+l C锛巒-i-1 D锛巌 3...
  • 鍚涓涓暱搴︿负n鐨鍚戦噺鐨勭i
    绛旓細n - i + 1 9. 鍚涓涓暱搴︿负n鐨鍚戦噺涓垹闄ょi涓厓绱(1鈮鈮)鏃,闇鍚戝墠绉诲姩 涓厓绱.n - i 10. 鍦ㄩ『搴忚〃涓璁块棶浠绘剰涓缁撶偣鐨勬椂闂村鏉傚害鍧囦负 ,鍥犳,椤哄簭琛ㄤ篃绉颁负 鐨勬暟鎹粨鏋.O(1)闅忔満璁块棶 11. 椤哄簭琛ㄤ腑閫昏緫涓婄浉閭荤殑鍏冪礌鐨勭墿鐞嗕綅缃 鐩搁偦.鍗曢摼琛ㄤ腑閫昏緫涓婄浉閭荤殑鍏冪礌鐨勭墿鐞嗕綅缃 鐩搁偦.涔 涓...
  • 椤哄簭琛ㄤ腑鎻掑叆鍜鍒犻櫎闇瑕佺殑骞冲潎绉诲姩娆℃暟,鎬庝箞绠楀晩?璇锋眰澶х浠洖绛斻傛眰...
    绛旓細褰撴垜浠鍒犻櫎涓涓缁撶偣鏃讹紝鐢变簬椤哄簭琛鐨勭粨鐐逛箣闂翠负閭绘帴鍏崇郴鎵浠鍦ㄥ垹闄缁撶偣涔嬪悗鐨勬瘡涓涓粨鐐归兘瑕佸線鍓嶇Щ鍔ㄤ竴浣嶏紝鏁翠釜椤哄簭琛ㄧ殑闀垮害鍑忎竴锛屾墍浠ュ垹闄や竴涓粨鐐规椂鎴戜滑闇瑕佺Щ鍔紙n-1锛/2涓粨鐐癸紝姝ゆ椂鎴戜滑骞冲潎闇瑕佺Щ鍔紙n-1锛/2娆°傞绛旈佺粰浣狅紝杩欎釜闂鎴戜篃鏄垰瀛︿笉涔呮濂戒粖澶╂鍦ㄦ濊冿紝鍙兘浼氭湁涓嶆纭殑鍦版柟锛屽鏋...
  • 扩展阅读:孩子n和l发音分不清怎么办 ... 小孩nl不分怎么训练 ... 音标大全及读法发音 ... 小孩l和n不分怎么纠正 ... 音标表标准发音 ... 怎么纠正l和n发音不准 ... 孩子nl不分怎么纠正 ... 在有n个顶点的无向图中 ... 在一个长度为n的顺序表中删除第i ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网