数据结构问题
\u6570\u636e\u7ed3\u6784\u95ee\u9898#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 ;}
\u4e4b\u540e\u63d2\u5165s\u6240\u6307\u7ed3\u70b9\u7684\u64cd\u4f5c\u662f\uff08D\uff09\u3002
Ap->right=s;s->left=p;p->right->left=s;s->right=p->right;
Bp->right=s;p->right->left=s;s->left=p;s->right=p->right;
Cs->left=p;s->right=p->right;p->right=s;p->right->left=s;
Ds->left=p;s->right=p->right;p->right->left=s;p->right=s;
2\u3001\u4e8c\u7ef4\u6570\u7ec4A\u4e2d\uff0c\u6bcf\u4e2a\u5143\u7d20\u7684\u957f\u5ea6\u4e3a3\u4e2a\u5b57\u8282\uff0c\u884c\u4e0b\u6807i\u4ece0\u52307\uff0c\u5217\u4e0b\u6807j\u4ece0\u52309\uff0c\u4ece\u9996\u5730\u5740SA\u5f00\u59cb\u8fde\u7eed\u5b58\u653e\u5728\u5b58\u50a8\u5668\u5185\uff0c\u5b58\u653e\u8be5\u6570\u7ec4\u81f3\u5c11\u9700\u8981\u7684\u5b57\u8282\u6570\u662f\uff08C\uff09\u3002
A80
B100
C240
D270
3\u3001\u5728\u4e00\u4e2a\u5355\u94fe\u8868\u4e2d\uff0c\u82e5\u5220\u9664p\u6240\u6307\u7ed3\u70b9\u7684\u540e\u7eed\u7ed3\u70b9\uff0c\u5219\u6267\u884c\uff08A\uff09\u3002
Ap->next=p->next->next;
Bp=p->next;p->next=p->next->next;
Cp->next=p->next;
Dp=p->next->next\uff1b
4\u3001\u6570\u636e\u7ed3\u6784DS(Data Struct)\u53ef\u4ee5\u88ab\u5f62\u5f0f\u5730\u5b9a\u4e49\u4e3aDS=\uff08D\uff0cR\uff09\uff0c\u5176\u4e2dD\u662f\uff08B\uff09\u6709\u9650\u96c6\u5408\uff0cR\u662fD\u4e0a\u7684\u5173\u7cfb\u6709\u9650\u96c6\u5408\u3002
A\u7b97\u6cd5
B\u6570\u636e\u5143\u7d20
C\u6570\u636e\u64cd\u4f5c
D\u6570\u636e\u5bf9\u8c61
5\u3001\u4e0d\u5e26\u5934\u7ed3\u70b9\u7684\u5355\u94fe\u8868head\u4e3a\u7a7a\u7684\u5224\u5b9a\u6761\u4ef6\u662f\uff08A\uff09\u3002
Ahead= =NULL
Bhead->next= =NULL
Chead->next= =head
Dhead!=NULL
很久没做题了,猜的啊,你问老师不是更好嘛。有标准答案了也贴上来给我学习学习哈:
一道填空题: 在单链表中,要在已知结点*P之前插入一新节点,需找到_(前一节点)___,其时间复杂度为_(O(n))___,而在双链表中,完成同样操作的时间复杂度为__(O(1))__。
这个补充的我也不知道是相同还是不同,猜一下吧……
问题补充:
还有一个: 在一个不带头结点的单链表中,在表头插入或删除与其在其他位置插入或删除操作的过程__(不同)____。
前一个结点
O(n)
O(1)
最后一个问题不完整,应该有前提的吧
绛旓細鏁版嵁缁撴瀯闈㈣瘯甯歌闂 绡1 鏁版嵁缁撴瀯涓庣畻娉,杩欎釜閮ㄥ垎鐨勫唴瀹瑰叾瀹炴槸鍗佸垎鐨勫簽澶,瑕佹兂閮借鐩栧埌涓嶅お瀹规槗銆傚湪鏍″涔犻樁娈垫垜浠彲鑳介渶瑕佸姣忕缁撴瀯,姣忕绠楁硶閮藉涔,浣嗘槸鎵惧伐浣滅瑪璇曟垨鑰呴潰璇曠殑鏃跺,瑕佸湪寰堢煭鐨勬椂闂村唴鑰冨療涓涓汉杩欐柟闈㈢殑鑳藉姏,鎶婃瘡绉嶇粨鏋勫拰绠楁硶閮介棶涓閬嶄笉澶幇瀹炪傛墍浠,瀹為檯鐨勬儏鍐垫槸,浼佷笟涓鑸冨療涓浜涚湅璧锋潵寰堝熀鏈...
绛旓細绗竴棰橈細鐢卞垎鏋濇暟锛屾湁2D+30+1锛堟爲鏍癸級=N锛汥涓哄弻鍒嗘灊缁撶偣锛孨涓烘荤粨鐐规暟 鐢辨暟缁撶偣鏁版湁锛50+30+D=N銆傝В涓婇潰涓や釜鏂圭▼鍙緱N=129 绗簩棰橈紝褰撴爲鍙湁宸﹀瓙鏍戞椂 绗笁棰橈紝灏忎簬绛変簬 绗洓棰橈紝n+n^2绾︾瓑浜巒^2銆傚悗闈㈢殑涔樹笉鑳藉拷鐣.
绛旓細1銆佽繛閫氬浘 鍥惧唴浠绘剰涓や釜椤剁偣鍧囨湁鍙揪璺緞锛屽叾涓湁鍚戝浘鐨勮瘽锛屾墍鏈夎竟閮界湅浣滄棤鍚戙傛弧瓒宠繖涓鎬ц川鐨勫浘涓鸿繛閫氬浘 2銆佺敱浜庢病璇翠竴瀹氳繛閫氾紝鎵浠ユ湁鍚戝浘涓庢棤鍚戝浘鏈灏戣竟鏁板潎涓0 鏈澶氱殑璇濓紝鏈夊悜鍥句负n*(n-1)锛屾棤鍚戝浘涓簄*(n-1)/2 3銆佹棤鍚戝浘锛岀悊璁烘渶澶氳竟鏁颁负(n^2-n)/4锛屽叾涓偣鐨勬暟鐩钩鍧囧垎甯冨湪...
绛旓細s->next=p->next;p->next=s;t=p->data;p->data=s->data;s->data=t;A銆佺粨鐐*p涓庣粨鐐*s鐨鏁版嵁鍩熶簰鎹銆佸湪p鎵鎸囩粨鐐圭殑鍏冪礌涔嬪墠鎻掑叆鍏冪礌C銆佸湪p鎵鎸囩粨鐐圭殑鍏冪礌涔嬪悗鎻掑叆鍏冪礌D銆佸湪缁撶偣*p涔嬪墠鎻掑叆缁撶偣*s绗34棰 (2.0) 鍒 鑻ョ粨鐐圭殑瀛樺偍鍦板潃涓庣粨鐐瑰唴瀹规湁鏌愮纭畾鐨勫叧绯,鍒欑浉搴旂殑瀛樺偍缁撴瀯搴斾负( )銆侫銆侀『搴...
绛旓細1.瀵圭殑 鏁版嵁鍏冪礌鏄兘澶熺嫭绔嬨佸畬鏁村湴鎻忚堪闂涓栫晫涓殑瀹炰綋鐨勬渶灏忔暟鎹崟浣嶏紝瀹冩槸鏁版嵁杩欎釜闆嗗悎涓殑涓涓竴涓殑鍏冪礌銆2.閿欑殑 鍔ㄦ佹煡鎵捐〃鈥斾簩鍙夋帓搴忔爲 3.閿欑殑 鏈夊簭琛ㄦ棦鍙互浣跨敤椤哄簭鏌ユ壘锛屽張鍙互浣跨敤鎶樺崐鏌ユ壘 4.瀵圭殑 5.閿欑殑 涔熷彲浠ョ敤閾捐〃鎴栬呮槸寰幆閾捐〃 6.瀵圭殑 杩欏氨鏄爢鏍堢殑鐗规э紝鍜岄槦鍒椾笉鍚岋紝闃熷垪...
绛旓細鏁版嵁缁撴瀯鐨闂~ 涔犻1 涓銆侀夋嫨棰 1 璁$畻鏈虹畻娉曞繀椤诲叿澶囪緭鍏ャ佽緭鍑恒()绛5涓壒鎬с A 鍙鎬с佸彲绉绘鎬у拰鍙墿灞曟 B 鍙鎬с佺‘瀹氭у拰鏈夌┓鎬 C 纭畾鎬с佹湁绌锋у拰绋冲畾鎬
绛旓細鍏充簬鏁版嵁缁撴瀯鐨闂,鐢–璇█鎻忚堪 60 1.璁句竴鍑芥暟f(x,y)=(1+A*(e^B/cos胃)*(1+C*(cos蠄)^2),鍏朵腑胃=(蟺*x)/180,蠄=(蟺*y)/180,鍙傛暟A=-0.5,B=-0.4,C=-0.1銆倄浠0鍙樺寲鍒89,姝ラ暱涓1,y浠0鍙樺寲鍒359,姝ラ暱涓1銆傞噰鐢ㄤ竴绉嶆暟鎹粨... 1. 璁句竴鍑芥暟 f(x,y)=(1+A*(e^B/cos胃)*(1...
绛旓細1銆侀夋嫨D锛屽洜涓烘渶鍧忔儏鍐垫槸姣忔鍒ゆ柇a[j]>a[j+1]閮芥垚绔嬶紝鐢变簬鏈変袱灞傚惊鐜紝鎬绘鏁颁负(n-1)+(n-2)+...+2+1=n(n-1)/2=O(n^2)銆2銆佺▼搴忔槸涓缁勫懡浠ょ殑闆嗗悎锛岀畻娉曟槸璁捐濂界殑鍙互瑙e喅闂鐨勪竴缁勮鍒欙紝浜岃呬笉鏄竴绉嶄笢瑗裤3銆佷竴涓畻娉曚腑鐨勮鍙ユ墽琛屾鏁扮О涓鸿鍙ラ搴︽垨鏃堕棿棰戝害锛岃涓篢(n)銆...
绛旓細p->next鏄寚缁撶偣a[i+1]鐨勫瓨鍌ㄥ湴鍧 绗竴鏉¤鍙ョ殑鍚箟鏄皢a[i-1]鐨刵ext鎸囬拡鎸囧悜a[i+1]瀛樺偍鍦板潃 绗簩鏉¤鍙ワ細p->next->prior鏄寚缁撶偣a[i+1]鐨刾rior鎸囬拡鍩 p->priot鏄寚缁撶偣a[i-1]鐨勫瓨鍌ㄥ湴鍧 绗簩鏉¤鍙ョ殑鍚箟鏄皢a[i+1]鐨刾rior鎸囬拡鎸囧悜a[i-1]鐨勫瓨鍌ㄥ湴鍧 鏈鍚庣粨鏋滐細a[i-1]鐨勬寚閽...
绛旓細璁炬爤鐨勯『搴忓瓨鍌ㄧ┖闂翠负S(1: m)锛屽垵濮嬬姸鎬佷负top=m+1,璇存槑鏍堢┖鏃秚op=m+1锛涘叆鏍堟椂鏍堥《鎸囬拡鏄噺鎿嶄綔銆傚綋鍓嶆爤涓殑鍏冪礌涓猴細m+1-20=m-19鎵浠ョ瓟妗圕姝g‘