前言
以下是本人完成的乙個c語言建立鍊錶並進行增刪查改操作的程式,為方便學習,本人將整個程式分為標頭檔案和主函式兩部分:
1.標頭檔案(函式部分)
(1)初始化函式
#iwww.cppcns.comnclude
#include
typedef struct toslist; //toslist型別
//初始化順序表
toslist initseqlist()
return list;
}(2)列印函式
//列印順序表
void displaylist(toslist list)
printf("\n");
}(3)插入函式
//插入元素
toslist add(toslist list, int elem, int pos)
} //插入位置及以後的元素後移
for (int i = list.length - 1; i >= pos; i--)
list.head[pos] = elem;
list.length ++;
return list;
if (pos > list.length || pos < 0)
printf("插入位置錯誤!\n");
return list;
}(4)刪除函式
//刪除元素
toslist delete(toslist list, int pos)
list.length--;
return list;
if (pos < 0 || pos > list.length)
}(5)查詢函式
//查int search(toslist list, int elem)
} return 0;
}(6)替換函式
//改toslist modify(toslist list, int elem, int val)
2.主函式
int main()
printf("順序表中的元素有:\n");
displaylist(list);
//插入元素
printf("要在哪個元素後插入元素?\n");
while (addpos < 0 || addpos > list.length) ;
printf("請輸入需要插入的元素:\n"); scanf("%d", &addnum);
printfwww.cppcns.com("在順序表的第%d個元素後插入元素%d得到\n", addpos, addnum);
list = add(list, addnum, addpos);
displaylist(list);
//刪除元素
printf("要刪除順序表下標順序中哪個元素?\n"); scanf("%d", &delpos);
printf("刪除後得到:\n");
list = delete(list, delpos);
displaylist(list);
//查詢
printf("請輸入需要查詢的元素\n"); scanf("%d", &serachnum);
int pos = search(list, serachnum);
if(pos)
printf("元素%d的位置為第%d個\n", serachnum, pos+1);
if(!pos)
//修改
printf("請輸入需要修改的元素:\n");sryvsedcanf("%d",&serachnum);
printf("請輸入要替換的數:\n");scanf("%d",&modifynum);
printf("將%d修改為%d得到:\n", serachnum, modifynum);
list = modify(list, serachnum, modifynum);
displaylist(list);
free(list.head);
list.head = null;
return 0;
}以上程式本人已除錯完畢,若程式有繁雜之處,歡迎批評指正!
總結本文標題: c語言如何建立鍊錶並實現增刪查改詳解
本文位址:
C 鍊錶(簡單實現增刪改查)
補充之前有一篇部落格,實現簡單的增刪改查功能 main函式內為測試內容 include using namespace std struct student student head 全域性頭節點 增 新增節點資料 void addnode 刪 刪除節點資料 void delectnode 改 改變...
C 鍊錶,增刪改查
main.c homework linklist created by jiumiao on 15 7 23.年 include include typedef struct npcnpc typedef struct nodenode node head null 定義乙個頭節點 新增節點 voi...
C語言實現雙向鍊錶,增刪改查,排序
include includetypedef struct node nodeptr typedef struct node node void putprev int data,nodeptr head node data data node next null node prev null no...