設計乙個演算法判定帶表頭結點的單鏈表是否有序遞增,並討論演算法的時間複雜度。判斷是否有序遞增
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...