當前位置:首頁 » 操作系統 » c插入演算法

c插入演算法

發布時間: 2023-01-19 03:21:46

A. 用c語言編寫程序建立鏈表結構體類型實現鏈表初始化遍歷和插入演算法

#include <stdio.h>
#include <stdlib.h>

#define telemtype char
#define ok 1
#define error 0
#define overflow -1

typedef int status;

typedef struct bitnode
{
telemtype data;
struct bitnode *lchild,*rchild;
}bitnode,*bitree;

void preordertraverse(bitree T)
{
if(T)
{
printf("%c ",T->data);
preordertraverse(T->lchild);
preordertraverse(T->rchild);
}
}

status createbitree(bitree &T)
{
int ch;
ch=getchar();
if(ch==' ')
T=NULL;
else
{
if(!(T=(bitnode*)malloc(sizeof(bitnode))))
exit(overflow);
T->data=ch;
createbitree(T->lchild);
createbitree(T->rchild);
}
return ok;
}

void prinbtree(bitree T)
{
if(T!= NULL)
{

printf("%c", T->data);
if(T->lchild!=NULL||T->rchild!=NULL)
{
printf("(");
prinbtree(T->lchild);
if(T->rchild!=NULL)
{
printf(",");
}
prinbtree(T->rchild);
printf(")");
}
}
}

int main()
{
bitree T=NULL;

printf("先序輸入二叉樹:\n");
createbitree(T);

printf("先序遍歷二叉樹為:\n");
preordertraverse(T);
printf("\n");

prinbtree(T);
printf("\n");

return 0;
}

我寫的,希望對你有用!

B. 【C語言·數據結構】關於線性表裡的順序表的插入演算法

你這里的線性表是特指鏈表吧?要不然是不會需要把長度加1的。

鏈表理論上是沒有長度限制的(但實際上你不能無限地增長它,因為計算機的內存是有限的)

在插入一個元素後再把長度加1是沒有任何問題的,反而這是一個較為妥當的做法,因為如果你一開始就把長度加一,但元素插入失敗的話,那就會出現問題。

另外,你要明確一個觀點,「後移元素」並不是真的把它在內存中的位置後移了,只是把它掛在了當前插入的這個結點後面,對任何的其他元素的地址都不會有影響的。

表長其實是一個方便你管理鏈表的東西,它可以記錄當前鏈表的長度,讓你較為容易地判斷鏈表是否為空,也可以讓你限定鏈表的長度(通過設置一個max值,當length達到max時,不準再插入元素)

C. c語言中插入排序的基本思想是什麼

插入排序(Insertion sort)是一種簡單直觀且穩定的排序演算法。如果有一個已經有序的數據序列,要求在這個已經排好的數據序列中插入一個數,但要求插入後此數據序列仍然有序,這個時候就要用到一種新的排序方法——插入排序法,插入排序的基本操作就是將一個數據插入到已經排好序的有序數據中,從而得到一個新的、個數加一的有序數據,演算法適用於少量數據的排序,時間復雜度為O(n^2)。是穩定的排序方法。插入演算法把要排序的數組分成兩部分:第一部分包含了這個數組的所有元素,但將最後一個元素除外(讓數組多一個空間才有插入的位置),而第二部分就只包含這一個元素(即待插入元素)。在第一部分排序完成後,再將這個最後元素插入到已排好序的第一部分中。
插入排序的基本思想是:每步將一個待排序的記錄,按其關鍵碼值的大小插入前面已經排序的文件中適當位置上,直到全部插入完為止。

D. 求助C語言 單鏈表的插入、刪除演算法 的一些問題

第一個問題和第三個問題都是引用的意思,就是在函數中改變該變數的值會影響調用的地方的值,同時這樣如果是大的對象,不是復制一個值而是原來的變數,只是一個別名。
第二個問題&&是與的意思,也就是說當p指針不為空並且j < i-1時候執行循環
最後一個三句話意思是刪除一個元素,在此處刪除的是指針q指向的元素,用q指向要刪除的元素,然後第二句話是讓當前指針的下一個元素指向q的下一個元素,也就是刪除了q,然後把要刪除的元素的值也就是data賦給e變數
不知道解釋清楚了沒有,要是不行再聯系我。

E. C語言插入排序演算法

int main ()
{
int i;
DataType a[MaxSize];
SqList L;
srand((unsigned)time(NULL));
for (i=0;i<MaxSize;i++)
{
int number = rand()%MaxSize + 1;
//printf ("%d ",number);
a[i].key = number;
L.data[i].key = a[i].key;
}

return 0;
}

F. 如何使用c語言實現插入演算法

void InsertSort(int arr[], int len, int key)
{
int i, j;
int temp;
for(i=0; i<len-1; i++)
{
temp = arr[i+1];
for(j=i; j>=0 && arr[j] > temp; j--)
arr[j+1] = arr[j];
arr[j+1] = temp;
}
}

G. c語言插入法排序的演算法步驟

演算法描述
一般來說,插入排序都採用in-place在數組上實現。具體演算法描述如下:
從第一個元素開始,該元素可以認為已經被排序
取出下一個元素,在已經排序的元素序列中從後向前掃描
如果該元素(已排序)大於新元素,將該元素移到下一位置
重復步驟3,直到找到已排序的元素小於或者等於新元素的位置
將新元素插入到該位置後
重復步驟2~5
如果比較操作的代價比交換操作大的話,可以採用二分查找法來減少比較操作的數目。該演算法可以認為是插入排序的一個變種,稱為二分查找排序。
范常式式碼
void insertion_sort(int array[], int first, int last)
{
int i,j;
int temp;
for (i = first+1; i<=last;i++)
{
temp = array[i];
j=i-1;

while((j>=first) && (array[j] > temp))
{
array[j+1] = array[j];
j--;
}
array[j+1] = temp;
}
}

H. c語言實現插入排序演算法

   插入排序是一種最簡單的排序方法,它的基本思想是將一個記錄插入到已經排好序的有序表中,從而一個新的、記錄數增1的有序表。在其實現過程使用雙層循環,外層循環對除了第一個元素之外的所有元素,內層循環對當前元素前面有序表進行待插入位置查找,並進行移動。

I. 關於c語言數據結構 insertlist插入演算法

您的sort函數有錯誤。如果我沒有講明白可以聯系我。
void
sort(seqlist
*p,int
i,int
e)//將元素e傳入到數組的第i個位序前
{
int
j;
//if(p->n>10)
if(p->n<10)//判斷語句為p->n應該小於10才不會溢出
for(j=p->n;j>=i;j--)
{
p->b[j]=p->b[j-1];//將第i個位置以後的元素依次後移
//p->b[i-1]=e;
//p->n=p->n+1;
}
p->b[i-1]=e;//只要在最後插入一次就可以了。
p->n=p->n+1;//p->n=p->n+1隻需運行一次。
}

J. c語言折半插入演算法

void bisort(int* a, int n)
{
int k, i, j, m, c;
for(k = 2; k <= n; ++k)
{

c = a[k-1];
i = 0;
j = k-2;
do {
m = (i + j) / 2;
if (a[m] >= c)
j = m-1; else if (a[m] < c)
i = m+1;
} while (i <= j);
for (j = k-1; j > i; --j)
a[j] = a[j-1];
a[j] = c;
}
}

熱點內容
取消電腦連接wifi密碼怎麼設置密碼 發布:2025-07-04 19:31:32 瀏覽:506
電腦伺服器市場 發布:2025-07-04 19:14:06 瀏覽:503
沒簽名只加密 發布:2025-07-04 18:54:38 瀏覽:255
紅米手機存儲問題 發布:2025-07-04 18:50:43 瀏覽:843
水電煤演算法 發布:2025-07-04 18:36:44 瀏覽:330
天翼視訊緩存文件夾 發布:2025-07-04 18:36:43 瀏覽:97
unix網路編程第2卷 發布:2025-07-04 18:33:41 瀏覽:782
編譯歷史 發布:2025-07-04 18:23:01 瀏覽:852
空調壓縮機種類 發布:2025-07-04 18:13:58 瀏覽:243
中國有ip6伺服器嗎 發布:2025-07-04 17:58:56 瀏覽:728