数据结构问题,求解答,谢谢!
\u6570\u636e\u7ed3\u6784\u9898\u627e\u4e00\u4e2a\u8282\u70b9\u7684\u524d\u9a71\u540e\u7ee7\u7684\u65f6\u5019,\u6bd4\u975e\u4e8c\u53c9\u7ebf\u7d22\u6811\u65b9\u4fbf\u5feb\u6377
\u4e24\u6b21
\u5bf9
\u5bf9
\u6ca1\u6709\u9ad8\u5ea6\uff0c\u6ca1\u6cd5\u7b97
#include "stdafx.h"# include # include # include typedef struct Node{ char name[5]; int num; float score; struct Node * pNext;}NODE,*PNODE;PNODE init_list(void);void traverse_list(PNODE);int main(){ PNODE phead=NULL; phead=init_list(); traverse_list(phead); return 0;}PNODE init_list(void){ int len=10; int i; char a[5]; int b; float c; PNODE phead=(PNODE)malloc(sizeof(NODE)); if(NULL == phead) { printf("\u5206\u914d\u5185\u5b58\u5931\u8d25\uff0c\u7535\u8111\u5c06\u5728\u5341\u5206\u949f\u540e\u7206\u70b8"); exit(-1); } PNODE pTail=phead; pTail->pNext=NULL; for(i=0;iname,a); pNew->num=b; pNew->score=c; pTail->pNext=pNew; pNew->pNext=NULL; pTail=pNew; } return phead; }void traverse_list(PNODE phead){ PNODE p = phead->pNext; while(NULL != p) { printf("%s %d %f\n",p->name,p->num,p->score); p=p->pNext; } printf("\n"); return ;}
答案 : 472行优先存储明白吗?就是一行一行的存,不是一列一列的存。
题目告诉了A[1][1]和A[3][3]的存储地址,是想让你推算出A数组的大小。由于A[1][1]的地址是420,所以A[1][0]的地址就是419,还有A[3][3]的地址是446,那么A[3][0]的地址就是443。从A[1][0]到A[3][0],恰好实用了2行,(443-419)/ 2 = 12,也就是说数组A的大小是A[12][N],N没必要算出来,也算不出来。这样就知道了A[5][0]的地址是 419 + 12 * 4 = 467,那么A[5][5]就是467+5 = 472 了。
先根据A[3][3]的地处可以知道有12列,466=420+((3-1)*x+3-1)*1 所以x=12;
然后根据按行存储公式LOC[I,J]=10+((I-1))*n+j-1)*L;
可以得到A[5][5]=420+((5-1)*12+5-1)*1=472;
行存储,Loc(A[3][3])=Loc(A[1][1])+((3-1)×n+(3-1))*L
=420+2n+2
Loc(A[3][3])=446.这样,n=8
Loc(A[5][5])=])=Loc(A[1][1])+((5-1)×8+(5-1))*1=420+36=456
绛旓細a3,4鏄紙4*6+4锛*5=140 16杩涘埗涓8C 鍦板潃涓108C 5銆佹垜鐭ラ亾鐨勫揩閫熸帓搴忕増鏈氨鏈3涓紝铏界劧绠楁硶鍑犱箮涓鎽镐竴鏍风殑锛屼笉杩囧浣滄敮鐐圭殑閭d釜鏁扮殑浣嶇疆鐨勪簰鎹㈢暐鏈変笉鍚岋紝閭d箞姣忚疆鐨勭粨鏋滆嚜鐒朵笉涓鏍凤紝鎴戝ソ涓嶅鏄撴壘鍒板師鐗堟暀鏉愮殑绠楁硶锛屾槸鏈烘宸ヤ笟鍑虹増绀剧殑銆鏁版嵁缁撴瀯銆佺畻娉曚笌搴旂敤 鈥斺攃++璇█鎻忚堪銆嬬増锛屼絾鎰挎槸...
绛旓細棣栧厛璇存槑涓涓嬩粈涔堟槸鏁版嵁鐨勫瓨鍌ㄧ粨鏋勶紝瀹冩槸鎵鏁版嵁缁撴瀯鍦ㄨ绠楁満涓殑琛ㄧず锛堢墿鐞嗙粨鏋勶級锛屼富瑕佹湁鍥涚锛氶『搴忓瓨鍌ㄣ侀摼寮忓瓨鍌ㄣ佺储寮曞瓨鍌ㄥ拰鏁e垪瀛樺偍銆傞『搴忓瓨鍌ㄧ殑鐗圭偣鏄細閫昏緫涓婄浉閭荤殑鍏冪礌瀛樺偍鍦ㄧ墿鐞嗕綅缃笂涔熺浉閭荤殑瀛樺偍鍗曞厓閲岋紝绗1棰橀噷闂滃彲鐢ㄥ瓨鍌ㄩ『搴忎唬琛ㄩ昏緫椤哄簭鐨勬暟鎹粨鏋勨濊嚜鐒舵槸D椤哄簭瀛樺偍缁撴瀯浜嗭紝鍥犱负瀛樺偍鏄竴涓墿...
绛旓細瀵逛簬n涓粨鐐圭殑浜屽弶鏍戯紝鍦ㄤ簩鍙夐摼瀛樺偍缁撴瀯涓湁n+1涓┖閾惧煙锛屽嵆绾跨储锛岀敤浜庡瓨鍌ㄥ綋鍓嶇粨鐐圭殑鍓嶉┍缁撶偣鍜屽悗缁х粨鐐圭殑鎸囬拡銆備簩鍙夋爲鍔犵嚎绱㈠叡鍚屾瀯鎴愪簡绾跨储浜屽弶鏍戙傜敱浜庡彲浠ラ噰鐢ㄤ笉鍚岀殑椤哄簭閬嶅巻浜屽弶鏍戯紝鍥犳瀵瑰簲浜庝竴妫典簩鍙夋爲鍙互鏈夊妫典笉鍚岀殑绾跨储浜屽弶鏍戙備笅鍥炬槸绾跨储浜屽弶鏍戠殑涓涓粡鍏稿浘鐗囷紝鍏朵腑铏氱嚎閮ㄥ垎浠h〃绾跨储锛氱敱姝ゅ彲...
绛旓細6.鍏充簬鏍堝拰闃熷垪鐨勮娉曚腑姝g‘鐨勬槸锛圓 锛堿.鏍堝拰闃熷垪閮芥槸绾挎х粨鏋 B.鏍堟槸绾挎缁撴瀯,闃熷垪涓嶆槸绾挎х粨鏋 C.鏍堜笉鏄嚎鎬х粨鏋,闃熷垪鏄嚎鎬х粨鏋 D.鏍堝拰闃熷垪閮戒笉鏄嚎鎬х粨鏋 7.鍏充簬瀛樺偍鐩稿悓鏁版嵁鍏冪礌鐨勮娉曚腑姝g‘鐨勬槸(A )A.椤哄簭瀛樺偍姣旈摼寮忓瓨鍌ㄥ皯鍗犵┖闂 B.椤哄簭瀛樺偍姣旈摼寮忓瓨鍌ㄥ鍗犵┖闂 C.椤哄簭瀛樺偍鍜岄摼寮忓瓨鍌ㄩ兘...
绛旓細1.涓涓叿鏈10涓《鐐圭殑瀹屽叏鏃犲悜鍥句腑鏈塤45_鏉¤竟銆2.鍦ㄦ棤鍚戝浘涓紝濡傛灉浠庨《鐐箆鍒伴《鐐箆'鏈夎矾寰勶紝鍒欑Оv鍜寁'鏄痏鍙揪鐨勬垨杩為歘鐨勩傚鏋滃浜庡浘涓殑浠绘剰涓や釜椤剁偣vi,vj鈭圴,涓攙i鍜寁j閮芥槸杩為氱殑锛屽垯绉癎涓篲杩為氬浘_.3.娣卞害涓簁(k>=1)鐨勪簩鍙夋爲鑷冲鏈塤2鐨刱-1娆℃柟_涓粨鐐广4.鏈塵涓彾瀛愮粨鐐圭殑鍝...
绛旓細)锛屽洜姝わ紝椤哄簭琛ㄤ篃绉颁负()鐨鏁版嵁缁撴瀯銆17.椤哄簭琛ㄤ腑閫昏緫涓婄浉閭荤殑鍏冪礌鐨勭墿鐞嗕綅缃()鐩搁偦銆傚崟閾捐〃涓昏緫涓婄浉閭荤殑鍏冪礌鐨勭墿鐞嗕綅缃 ()鐩搁偦銆19.鍦ㄥ崟閾捐〃涓紝闄や簡棣栧厓缁撶偣澶栵紝浠讳竴缁撶偣鐨勫瓨鍌ㄤ綅缃敱()鎸囩ず銆20锛庡湪n涓粨鐐圭殑鍗曢摼琛ㄤ腑瑕佸垹闄ゅ凡鐭ョ粨鐐*p锛岄渶鎵惧埌瀹冪殑 ()锛屽叾鏃堕棿澶嶆潅搴︿负()銆21....
绛旓細1銆佷换浣曚腑缂琛ㄨ揪寮忛兘鐢辫繍绠楁暟锛岃繍绠楃锛屾嫭鍙凤紙澶э紝涓紝灏忥級锛岃繖涓夐儴鍒嗙粍鎴愩2銆佷粠涓紑琛ㄨ揪寮忕殑宸﹁竟寮濮嬫壂鎻忥紙鑴戜腑鑷繁鎯冲儚鐨勶級锛岃嫢閬囧埌杩愮畻鏁版椂锛屽垯鐩存帴灏嗗叾杈撳嚭锛堜笉鍘嬪叆鍫嗘爤锛夈3銆佽嫢閬囧埌宸︽嫭鍙凤紝鍒欏皢鍏跺帇鏍堛4銆佽嫢閬囧埌鍙虫嫭鍙凤紝琛ㄨ揪鎷彿鍐呯殑涓紑琛ㄨ揪寮忓凡缁忔壂鎻忓畬姣曘傝繖鏃堕渶灏嗘爤椤剁殑杩愮畻绗︿緷娆″脊鍑哄苟...
绛旓細绛旀 锛 472 琛屼紭鍏堝瓨鍌ㄦ槑鐧藉悧锛熷氨鏄竴琛屼竴琛岀殑瀛橈紝涓嶆槸涓鍒椾竴鍒楃殑瀛樸傞鐩憡璇変簡A[1][1]鍜孉[3][3]鐨勫瓨鍌ㄥ湴鍧锛屾槸鎯宠浣犳帹绠楀嚭A鏁扮粍鐨勫ぇ灏忋傜敱浜嶢[1][1]鐨勫湴鍧鏄420锛屾墍浠[1][0]鐨勫湴鍧灏辨槸419,杩樻湁A[3][3]鐨勫湴鍧鏄446锛岄偅涔圓[3][0]鐨勫湴鍧灏辨槸443銆備粠A[1][0]鍒癆[3][0],...
绛旓細鍙宠竟鏄痜銆傝繖鏃跺彧闇瑕佺户缁垎鏋愬乏瀛愭爲銆傚悓鏍峰厛鐪嬪墠搴忛亶鍘哾cae锛岄偅涔堣繖涓瓙鏍戠殑鏍规槸d銆傛妸涓簭閬嶅巻涓殑cdea鍒嗗紑鎴愬乏杈筩鍙宠竟ea銆傜劧鍚庣户缁垎鏋愬彸瀛愭爲銆傚墠搴忛亶鍘嗘槸ae锛宎鏄牴銆備腑搴忛亶鍘嗘槸ea锛岄偅涔堣鏄巈鏄乏瀛愭爲銆傞偅涔堟垜浠彲浠ユ妸杩欎釜浜屽弶鏍戠敾鍑烘潵浜嗭細浠庤繖閲屽氨寰堝鏄撳啓鍑哄悗搴忛亶鍘嗭紙宸︼紝鍙筹紝鏍癸級锛歝eadfb ...
绛旓細绗竴棰橈細//浣跨敤闆嗗悎鎻愪緵鐨勫伐鍏锋柟娉 public static List<Integer> merge(List<Integer> a, List<Integer> b) { //a,b not null //鍏ㄩ儴鏀惧埌涓涓猻et閲岄潰锛屼娇寰楀厓绱犲悎骞 Set<Integer> set = new HashSet<Integer>(a);set.addAll(b);//灏唖et閲岄潰鐨勫厓绱犳斁鍒板垪琛ㄥ啀杞负鏁扮粍 Integer[] array = ...