單鏈表劃分值區域

2021-10-21 18:18:00 字數 833 閱讀 6803

題目:將單向鍊錶按某值劃分稱左邊小,中間相等,右邊大的形式

給定乙個單鏈表的頭節點head,節點的值型別是整型,再給定乙個整數pivot,實現乙個調整鍊錶的函式,將鍊錶調整為左部分小於pivot的節點,中間部分等於pivot的節點,右部分都是大於pivot的節點

陣列解法:

node listpartition1(node head,int pivot)

node cur=head;

int i=0;

while(cur!=null)

node nodearr=new node[i];

i=0;

cur=head;

for(int i=0;i!=nodearr.length;i++)

arrpartition(nodearr,pivot);

for(int i=0;i!=nodearr.length;i++)

nodearr[i-1]->next=null;

return nodearr[0];

}

高階指標解法

node listpartition2(node head,int pivot)

}else if(head->value==pivot)

else

}else

else

}head=next;//向下遍歷

} if(st!=null)//如果有小於區域

if(et!=null)//如果有等於區域

return sh!=null?sh:(eh!=null?eh:mh);

}

將單鏈表按基準劃分

include include typedef char elemtype typedef struct lnode linknode 宣告單鏈表結點型別 尾插法建立單鏈表 static void create list rear linknode l,elemtype a,int n 指標的引用 ...

區域劃分總結

直線切割平面 當乙個平面上沒有直線的時候,可以看成被分成了1份 有1條直線的時候,沒有結點,多了 1部分 有2 條直線的時候,多了 1個節點,多了 2部分 有3 條直線的時候,多了 2個節點,多了 3部分 第n條直線 0 1234 節點數0 00 1 1 21 2 3 區域數1 1 11 1 2 1...

c 記憶體區域劃分

c 中,記憶體分為5個區域 堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區。其中 棧 就是那些編譯器在需要的時候分配,不需要的時候清理的變數的儲存區域,比如區域性變數和函式引數。在記憶體中連續儲存的區域,位址從低到高。堆 就是new分配的記憶體塊,需要delete。如果沒有delete,在程式退...