複習資料結構 單鏈表的操作

2022-05-18 23:11:43 字數 1347 閱讀 4652

#include #include typedef char elemtype;

typedef struct lnodelnode,*linklist;

/*** 頭插法初始化鍊錶

**/linklist createlisthead(void)

return l; //返回的是鍊錶

}/**

* 尾插法初始化鍊錶

**/linklist createlisttail(void)else

r=p; //2 再把尾指標指向p,方便插入下乙個結點

if(r!=null)

ch=getchar();

} return l;

}/**

* 根據位置獲取元素

**/lnode *getelem(linklist l,int i)

if(i==j)else

}/**

* 根據值獲取元素

**/lnode *locateelem(linklist l,elemtype e)

printf("%c\n",p->data);

return p;

}/**

* 鍊錶的插入實現方法之一:尾插法

**/void insertnode(linklist l,elemtype e,int index)

newnode=(lnode*)malloc(sizeof(lnode));

newnode->data=e;

p->next=newnode;

p=newnode;

}/**

* 根據索引刪除結點

**/void deletenode(linklist l,int index)

if(j==index-1)

}/**

* 合併單鏈表 直接將乙個list鏈結到另乙個表表尾

**/lnode concatenate(linklist a,linklist b)else }}

/*** 合併兩個從小到大的有序單鏈表 並將鍊錶中data域仍按照從小到大順序排列

* 非遞迴

**/lnode concatenateorderbydata(linklist a,linklist b)

if(b == null)

if(a->data < b->data)else

while(a != null && b != null)else

} //經過上面的while迴圈之後,如果a或b仍然不為空,說明有另外一方已經為空了

//直接將剩下的煉錶鏈入即可

if(a != null)

if(b != null)

}void main()

資料結構 單鏈表的操作

單鏈表的操作 輸入一組整型元素序列,使用尾插法建立乙個帶有頭結點的單鏈表。實現該線性表的遍歷。在該單鏈表的第i個元素前插入乙個整數。刪除該單鏈表中的第i個元素,其值通過引數將其返回。建立兩個按值遞增有序的單鏈表 將他們合併成乙個按值遞減有序的單鏈表。要求利用原來的儲存空間 這是我資料結構老師留下的實...

資料結構 單鏈表的操作

1 隨機產生或鍵盤輸入一組元素,建立乙個帶頭結點的單向鍊錶 無序 2 遍歷單向鍊錶。3 把單向鍊錶中元素逆置 不允許申請新的結點空間 4 在單向鍊錶中刪除所有的偶數元素結點。5 編寫在非遞減有序鍊錶中插入乙個元素使鍊錶元素仍有序的函式,並利用該函式建立乙個非遞減有序單向鍊錶。6 利用演算法5建立兩個...

C資料結構 單鏈表操作

單鏈表的一些操作函式 參考自 程杰 大話資料結構 巨集定義 define ok 1 define error 0 typedef int elemtype typedef int status 結構體 線性單鏈表儲存結構 typedef struct node node typedef struct...