判斷帶表頭的單鏈表是否有序遞增

2021-08-26 18:19:22 字數 1544 閱讀 8805

設計乙個演算法判定帶表頭結點的單鏈表是否有序遞增,並討論演算法的時間複雜度。

判斷是否有序遞增
status order(headerlist *h, int n)

else flag=1;

p=q;

q=q->link;

} if(flag==-1)

else printf("yes");

return ok;

}

#include#includetypedef int elemtype;

typedef int status;

#define error 0

#define ok 1

typedef struct node node;

typedef struct headerlist;

status init(headerlist *h);

status output(headerlist *h);

status order(headerlist *h, int msize);

status insert(headerlist *h, int i, elemtype x);

// status delete(seqlist *l,int i);

// void destory(seqlist *l);

// 單鏈表的初始化

status init(headerlist *h)

h->head->link = null;

h->n = 0;

return ok;

}status order(headerlist *h, int n)

else flag=1;

p=q;

q=q->link;

} if(flag==-1)

else printf("yes");

return ok;

}status insert(headerlist *h, int i, elemtype x)

q = (node*)malloc(sizeof(node));

q->element = x;

q->link = p->link;

p->link = q;

h->n++;

return ok;

}// 單鏈表的輸出

status output(headerlist *h)

return ok;

}int main()

output(&list);

printf("\n");

order(&list,nn);

return 0;

}

是有序遞增

不是有序遞增

單鏈表 判斷單鏈表L是否是遞增的(雙指標法)

單鏈表的儲存結構 typedef struct linklist 分析 定義乙個指標p夠不夠用?你要判斷是否遞增,說明要比較前後兩節點的資料域。如果前者一直大於後者,那麼可判斷該單鏈表遞增。所以這裡要定義兩個指標,pre p.思路 1.定義兩個前後指標pre p,並pre開始指向頭結點 2.通過wh...

單鏈表使其原始元素遞增有序

問題描述 有乙個帶頭結點的單鏈表l,設計乙個演算法使其元素遞增有序。空間複雜度要求為o 1 演算法思想 解決本題的思想類似於直接插入排序的思想。先構成只含乙個資料結點的有序單鏈表,然後依次遍歷單鏈表l中剩下的結點。在有序單鏈表中插入時,需要依次遍歷有序單鏈表,直到找到插入位置,使得插入後有序單鏈表仍...

第四周 單鏈表應用(判斷是否遞增)

all right reserved.date 2015年9月22日 版本 v1.0.1 作業系統 xp 執行環境 vc6.0 問題描述 設計乙個演算法,判斷單鏈表l是否是遞增的。實現這個演算法,並完成測試。標頭檔案 ifndef linklist h included define linklis...