首页 > 代码库 > 链表操作
链表操作
#define _CRT_SECURE_NO_DEPRECATE /*取消scanf,printf不安全之类的错误提示*/#include <stdio.h>#include <stdlib.h>typedef struct node{ int value; struct node* next;}listnode;listnode* Creat_List1(int nodenum, int *data); //最先进去的元素在最后面listnode* Creat_List2(int nodenum, int *data); //最先进去的元素在最前面int Get_Link_Element(listnode* head, int i); //取得头指针为head的链表中的第i个元素的值(包括第0个元素)void Insert_List(listnode* head, int a, int i);void Delet_List(listnode* head, int i); //删除第i个元素listnode* Merge_TWO_Linklist(listnode *list1, listnode *list2);//合并两个有序链表int main(){ int data; listnode *linka, *linkb, *linkc, *linkd, *linke; linka = (listnode*)malloc(sizeof(listnode)); linkb = (listnode*)malloc(sizeof(listnode)); linkc = (listnode*)malloc(sizeof(listnode)); linkd = (listnode*)malloc(sizeof(listnode)); linke = (listnode*)malloc(sizeof(listnode)); int a[5] = { 1, 3, 5, 7, 9 }; int b[3] = { 2,2, 4 }; linka = Creat_List2(5, a); linkb = Creat_List2(3, b); Insert_List(linkb, 10, 1); Delet_List(linkb, 1); linkc=Merge_TWO_Linklist(linka, linkb); data = http://www.mamicode.com/Get_Link_Element(linkb, 1);"%d\n", data);}//新元素总是插入到头指针后面,结果就是原先的元素一直往后移listnode* Creat_List1(int nodenum,int *data){ listnode *pc; //保存新节点 listnode *head; head = (listnode*)malloc(sizeof(listnode)); head->next = NULL; //先建立一个带头结点的单链表 /*开始插入元素*/ for (int i = 0; i < nodenum; i++) { pc = (listnode*)malloc(sizeof(listnode)); pc->value = http://www.mamicode.com/data[i];"error\n"); exit(-1); } s = (listnode*)malloc(sizeof(listnode)); s->value = http://www.mamicode.com/a;"error\n"); exit(-1); } temp = head->next; head->next = temp->next; //head = head->next->next; free(temp);}
链表操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。