1ListNode* createListNode(intdata) {2ListNode *lstn = (ListNode*)malloc(sizeof(ListNode));3lstn->data =data;4lstn->nxt =NULL;5returnlstn;6} 初始化链表 1voidinitList(List *l) {2l->head = createListNode(0);//初始化链表时,设置一个头节点,不保存值3l->length =0;4return;5} 插入节点 ...
typedef struct ListNode { type data; //数据域,type为数据的具体类型 struct ListNode *next; //指向下一个节点的指针 }ListNode, *LinkList; 3. 单链表基本操作 (1)插入数据 //将新元素插入到i位置 int ListInsert(ListNode list, int i, type newData) { LinkList p = list; int j = 0; while ...
ListNode *Locate_LinkList(LinkList head,DataType x) //按值查找 { //在带头结点的单链表head中查找值为x的 ListNode *p; p=head->next; //p指向第1个结点 while (p!=NULL && p->data!=x) p=p->next; return p; } int Insert_LinkList(LinkList L,int i,DataType x){ //插入 //在单链...
因此我们创建ListNode结构体类型时应由一个数据成员类型及两个指向该结构体的结构体指针组成. 这里的第一行使用的typedef类定义的作用是方便我们后续在使用带头双向循环链表时对存储的数据类型做更改,比如后续我们的带头双向循环链表不想存储int类型数据了,就可以很方便的在这里对带头双向循环链表数据域的存储数据类型做更...
链表的逆置有两种思路:循环法,和递归法(迭代),我本人更喜欢简洁易懂的循环法。其实循环和迭代本质都是为了使每个结点都发生变化。一般都是通过函数调用的方式实现。 循环法: //ListNode 是结构体数据类型(结点),reverse是函数名,形参为 链表头指针。 //38~39行定义了2个结构体指针变量,pre即前一个结点的指针,...
node=(structListNode*)malloc(sizeof(structListNode)); memset(node,0,sizeof(structListNode)); node->data=0; node->next=NULL; returnnode; } intlistPushback(structListNode*L,intaddNum) { structListNode*temp=L; structListNode*pre=L;
LinkList DeleteDeath(intn,intk,LinkList R) {inti,j,m;//由于不支持一个函数有过多传入的参数,且新建链表时用不着起始位置,故我们把起始位置放在函数中定义和使用printf("输入开始报数的位置m:"); scanf("%d",&m); ListNode*p,*q; p=R;for(j=0;j<m;j++)//先将当前位置向后移动m位,即表示从第...
二、list 包含方法 2.1. push_front 功能 插入数据到 list 头部 参数list:list指针,data:插入数据指针,len:插入数据 返回值 int 0:成功, -1 : 超过链表最大长度或者数据长度过长,-2:内存申请失败 2.2. push_back 功能 插入数据到 list 尾部 参数list:list指针,data:插入数据指针,len:插入数据 ...
voidSListPrint(SListNode*phead){ SListNode*curr=phead;// 定义临时指针 while(curr!=NULL){// 循环遍历 printf("%c->",curr->data);// 输出每个节点的数据 curr=curr->next;// 指针指向下一个节点 } } 1. 2. 3. 4. 5. 6. 7.
ListNode* result = dummy->next;free(dummy); returnresult;} voidprintList(ListNode* head){ListNode* current = head; while(current !=NULL) {printf("%d ", current->val);current = current->next;} printf("\n");} intmain(){// ...