怎样表示单链表中的第i个元素?
创建一个指针数组
,然后按照
链表
的顺序将每一个节点的指针放到数组中
当修改链表的时候,同时修改这个指针数组
感觉好麻烦,不过我想不出其他的办法了
绛旓細2妤艰鐨勯偅鏄弻閾捐〃锛鍗曢摼琛鍙湁next缁撶偣锛屾病鏈夆滃墠椹扁濓紱鍙兘浠庡ご寮濮嬫壘锛涙瘮濡傝鎶婃柊缁撶偣N鎻掑叆鍒绗琲涓浣嶇疆鐨勮瘽锛屽氨瑕佷粠绗竴涓粨鐐瑰紑濮嬮亶鍘嗭紝涓鐩存壘鍒扮i涓粨鐐癸紝鐒跺悗鎶奛鐨刵ext鎸囧悜瀹(i)锛屾渶鍚庢妸鍘熸潵绗琲-1涓粨鐐圭殑next鎸囧悜N鍗冲彲銆
绛旓細涓銆佷富浣撲笉鍚 1銆佸ご鎸囬拡锛氫互纭畾绾挎ц〃涓涓涓厓绱瀵瑰簲鐨勫瓨鍌ㄤ綅缃2銆佸ご缁撶偣锛氭暟鎹粨鏋勪腑锛屽湪鍗曢摼琛ㄧ殑绗涓涓粨鐐逛箣鍓嶉檮璁句竴涓粨鐐癸紝娌℃湁鐩存帴鍓嶉┍銆備簩銆佺壒鐐逛笉鍚 1銆佸ご鎸囬拡锛氭暣涓摼琛ㄧ殑瀛樺彇灏卞繀椤绘槸浠庡ご鎸囬拡寮濮嬭繘琛屼簡銆備箣鍚庣殑姣忎竴涓粨鐐癸紝鍏跺疄灏辨槸涓婁竴涓殑鍚庣户鎸囬拡鎸囧悜鐨勪綅缃2銆佸ご缁撶偣锛氭暟鎹...
绛旓細linklist L;int i; char x;printf("渚濇杈撳叆閾捐〃鍏冪礌锛岋純缁撴潫锛歕n");createlist(L);printf("鍒涘缓鐨勯摼琛ㄤ负锛歕n");printlinklist(L);printf("杈撳叆瑕佸湪绗嚑涓厓绱鍓嶆彃鍏ワ細\n");scanf("%d",&i);getchar();printf("杈撳叆瑕佹彃鍏ョ殑鑺傜偣鍊硷細\n");scanf("%c",&x);getchar();printf("鍦ㄧ...
绛旓細杩欎釜澶磋妭鐐规槸涓涓┖鑺傜偣锛堜笉瀛樺偍鏁版嵁锛夛紝浠呬綔鏍囧織鐢ㄣ傚厛鍋囪鏄崟鍚戦潪寰幆鍒楄〃銆倂oid deleteNode(Node * head, int i)//鍒犻櫎绗琲涓鑺傜偣锛宧ead鏄涓涓妭鐐规寚閽堛倇 Node * temp=head;for(int j=1;j<i;j++){ if(!temp->next) //鍒拌揪閾捐〃鏈 {cout<<"涓嶅瓨鍦ㄨ鑺傜偣";break;} temp=temp...
绛旓細include<iostream> using namespace std;typedef struct lnode { int data;lnode *next;}lnode,*linklist;int m;int listinsert(linklist &l,int i,int e)//鍦ㄥ甫澶磋妭鐐圭殑鍗曢摼琛ㄤ腑绗琲涓厓绱鎻掑叆鍏冪礌e { int j=0;linklist p,s;p=new lnode;p=l;s=new lnode;while(p&&j<i-1){ p=...
绛旓細寤虹珛涓涓甫澶寸粨鐐圭殑鍗曢摼琛锛屽垹闄ゅ叾涓鐨勭i涓厓绱锛氳繖涓ご鑺傜偣鏄竴涓┖鑺傜偣锛堜笉瀛樺偍鏁版嵁锛夛紝浠呬綔鏍囧織鐢ㄣ傚厛鍋囪鏄崟鍚戦潪寰幆鍒楄〃銆倂oid deleteNode(Node * head, int i)//鍒犻櫎绗琲涓妭鐐癸紝head鏄涓涓妭鐐规寚閽堛倇 Node * temp=head;for(int j=1;j<i;j++){ if(!temp->next) //鍒拌揪閾捐〃...
绛旓細n - i + 1 9. 鍚戜竴涓暱搴︿负n鐨勫悜閲忎腑鍒犻櫎绗琲涓厓绱(1鈮鈮)鏃,闇鍚戝墠绉诲姩 涓厓绱.n - i 10. 鍦ㄩ『搴忚〃涓闂换鎰忎竴缁撶偣鐨勬椂闂村鏉傚害鍧囦负 ,鍥犳,椤哄簭琛ㄤ篃绉颁负 鐨勬暟鎹粨鏋.O(1)闅忔満璁块棶 11. 椤哄簭琛ㄤ腑閫昏緫涓婄浉閭荤殑鍏冪礌鐨勭墿鐞嗕綅缃 鐩搁偦.鍗曢摼琛ㄤ腑閫昏緫涓婄浉閭荤殑鍏冪礌鐨勭墿鐞嗕綅缃 鐩搁偦.涔 涓...
绛旓細nodep ts=creat(3);/*鍒涘缓涓涓湁3涓粨鐐圭殑绀轰緥閾捐〃*/ nodep in=new struct node; /*瑕佹彃鍏ュ埌ts閾捐〃涓殑缁撶偣*/ in->data =10;prt(ts);/*杈撳嚭鎻掑叆涔嬪墠鐨勭粨鐐*/ ts=insert(ts,ts,in);/*灏唅n缁撶偣鎻掑叆鍒板師ts閾捐〃涓绗涓涓厓绱涔嬪墠*/ cout<<endl;prt(ts);/*杈撳嚭鎻掑叆涔嬪悗鐨勭粨鐐*/ return...
绛旓細//鑾峰彇琛ㄤ腑绗琲涓厓绱//i鐨勫悎娉曞彇鍊艰寖鍥存槸:0 < i < ListLength(L)+1ElemType GetElem(LinkList L,int i){ if(i<1 || i>ListLength(L)) { cout<<"鍙栧奸潪娉! 閾捐〃涓鏃犳浣嶅簭鍏冪礌"<<endl; return ERROR; } else { LinkList p = L; int j; for(j = 0;j<i;j++) p = p->next; ...
绛旓細{ int i;LinkList p;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;for(i=n;i>0;i--){ p=(LinkList)malloc(sizeof(LNode));cout<<"杈撳叆绗"<<i<<"鑺傜偣鍊";cin>>p->data;p->next=L->next;L->next=p;} } 2锛屽垹闄閾捐〃锛宨鍒犻櫎鐨勪綅缃紝灏嗗垹闄ょ殑鏁版柟鍦╡涓 int List...