#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...