以下是一个单链表,包括单链表的建立,插入,查找,删除
由于刚开始接触链表,如有错误,还请谅解
此为整体框架
#include<stdio.h>#include<stdlib.h>typedef struct node{int date;struct node *next;}liklistnode;liklistnode *initialize(void);//初始化单链表liklistnode *creat(int n);//尾插法建立单链表liklistnode *locate(liklistnode *head,int key);//按值查找结点liklistnode *get(liklistnode *head,int i);//按序号查找结点void insert_After(liklistnode * Ptr,int x);//在指定位置后插入结点void insert_Before(liklistnode *head,liklistnode *Ptr,int x);//在指定位置前插入结点liklistnode *delete_After(liklistnode *Ptr);//删除指定结点的后续结点liklistnode *delete_i(liklistnode *head,int i);//删除第i个结点int main(){return 0;}#include<stdio.h> #include<stdlib.h> typedef struct node { int date; struct node *next; }liklistnode; liklistnode *initialize(void);//初始化单链表 liklistnode *creat(int n);//尾插法建立单链表 liklistnode *locate(liklistnode *head,int key);//按值查找结点 liklistnode *get(liklistnode *head,int i);//按序号查找结点 void insert_After(liklistnode * Ptr,int x);//在指定位置后插入结点 void insert_Before(liklistnode *head,liklistnode *Ptr,int x);//在指定位置前插入结点 liklistnode *delete_After(liklistnode *Ptr);//删除指定结点的后续结点 liklistnode *delete_i(liklistnode *head,int i);//删除第i个结点 int main() { return 0; }#include<stdio.h> #include<stdlib.h> typedef struct node { int date; struct node *next; }liklistnode; liklistnode *initialize(void);//初始化单链表 liklistnode *creat(int n);//尾插法建立单链表 liklistnode *locate(liklistnode *head,int key);//按值查找结点 liklistnode *get(liklistnode *head,int i);//按序号查找结点 void insert_After(liklistnode * Ptr,int x);//在指定位置后插入结点 void insert_Before(liklistnode *head,liklistnode *Ptr,int x);//在指定位置前插入结点 liklistnode *delete_After(liklistnode *Ptr);//删除指定结点的后续结点 liklistnode *delete_i(liklistnode *head,int i);//删除第i个结点 int main() { return 0; }
liklistnode *initialize(void);//初始化单链表
liklistnode *initialize(void){liklistnode *head;head = (liklistnode*)malloc(sizeof(liklistnode));if(head == NULL)return 0;head->next=NULL;return 0;}liklistnode *initialize(void) { liklistnode *head; head = (liklistnode*)malloc(sizeof(liklistnode)); if(head == NULL) return 0; head->next=NULL; return 0; }liklistnode *initialize(void) { liklistnode *head; head = (liklistnode*)malloc(sizeof(liklistnode)); if(head == NULL) return 0; head->next=NULL; return 0; }
liklistnode *creat(int n);//尾插法建立单链表
liklistnode *creat(int n){liklistnode *head,*p,*q;head = (liklistnode*)malloc(sizeof(liklistnode));q = head;for(int i = 0;i<n;i++){p = (liklistnode*)malloc(sizeof(liklistnode));p->date = 0;q->next = p;q = p;}return head;}liklistnode *creat(int n) { liklistnode *head,*p,*q; head = (liklistnode*)malloc(sizeof(liklistnode)); q = head; for(int i = 0;i<n;i++) { p = (liklistnode*)malloc(sizeof(liklistnode)); p->date = 0; q->next = p; q = p; } return head; }liklistnode *creat(int n) { liklistnode *head,*p,*q; head = (liklistnode*)malloc(sizeof(liklistnode)); q = head; for(int i = 0;i<n;i++) { p = (liklistnode*)malloc(sizeof(liklistnode)); p->date = 0; q->next = p; q = p; } return head; }
liklistnode *locate(liklistnode *head,int key);//按值查找结点
liklistnode *locate(liklistnode *head,int key){liklistnode *p;p = head->next;while(p!=NULL&&p->date != key)p=p->next;return p;}liklistnode *locate(liklistnode *head,int key) { liklistnode *p; p = head->next; while(p!=NULL&&p->date != key) p=p->next; return p; }liklistnode *locate(liklistnode *head,int key) { liklistnode *p; p = head->next; while(p!=NULL&&p->date != key) p=p->next; return p; }
liklistnode *get(liklistnode *head,int i);//按序号查找结点
liklistnode *get(liklistnode *head,int i){int j = 0;liklistnode *p=head;if(i == 0)return NULL;while(j < i&&p->next != NULL){p=p->next;j++;}if(i == j)return p;else return NULL;}liklistnode *get(liklistnode *head,int i) { int j = 0; liklistnode *p=head; if(i == 0) return NULL; while(j < i&&p->next != NULL) { p=p->next; j++; } if(i == j) return p; else return NULL; }liklistnode *get(liklistnode *head,int i) { int j = 0; liklistnode *p=head; if(i == 0) return NULL; while(j < i&&p->next != NULL) { p=p->next; j++; } if(i == j) return p; else return NULL; }
void insert_After(liklistnode * Ptr,int x);//在指定位置后插入结点
void insert_After(liklistnode * Ptr,int x){liklistnode *s = (liklistnode*)malloc(sizeof(liklistnode));s->date = x;s->next = Ptr->next;Ptr->next = s;}void insert_After(liklistnode * Ptr,int x) { liklistnode *s = (liklistnode*)malloc(sizeof(liklistnode)); s->date = x; s->next = Ptr->next; Ptr->next = s; }void insert_After(liklistnode * Ptr,int x) { liklistnode *s = (liklistnode*)malloc(sizeof(liklistnode)); s->date = x; s->next = Ptr->next; Ptr->next = s; }
void insert_Before(liklistnode *head,liklistnode *Ptr,int x);//在指定位置前插入结点
void insert_Before(liklistnode *head,liklistnode *Ptr,int x){liklistnode *s,*qPtr;s = (liklistnode*)malloc(sizeof(liklistnode));s->date = x;qPtr = head;while(qPtr->next != Ptr)qPtr = qPtr->next;qPtr->next = s;}void insert_Before(liklistnode *head,liklistnode *Ptr,int x) { liklistnode *s,*qPtr; s = (liklistnode*)malloc(sizeof(liklistnode)); s->date = x; qPtr = head; while(qPtr->next != Ptr) qPtr = qPtr->next; qPtr->next = s; }void insert_Before(liklistnode *head,liklistnode *Ptr,int x) { liklistnode *s,*qPtr; s = (liklistnode*)malloc(sizeof(liklistnode)); s->date = x; qPtr = head; while(qPtr->next != Ptr) qPtr = qPtr->next; qPtr->next = s; }
liklistnode *delete_After(liklistnode *Ptr);//删除指定结点的后续结点
liklistnode *delete_After(liklistnode *Ptr){liklistnode *fPtr;fPtr = Ptr->next;Ptr->next = fPtr->next;return fPtr;}liklistnode *delete_After(liklistnode *Ptr) { liklistnode *fPtr; fPtr = Ptr->next; Ptr->next = fPtr->next; return fPtr; }liklistnode *delete_After(liklistnode *Ptr) { liklistnode *fPtr; fPtr = Ptr->next; Ptr->next = fPtr->next; return fPtr; }
liklistnode *delete_i(liklistnode *head,int i);//删除第i个结点
liklistnode *delete_i(liklistnode *head,int i){liklistnode *Ptr,*qPtr = NULL;Ptr = get(head,i-1);if(Ptr != NULL&&Ptr->next != NULL)qPtr = delete_After(Ptr);return qPtr;}liklistnode *delete_i(liklistnode *head,int i) { liklistnode *Ptr,*qPtr = NULL; Ptr = get(head,i-1); if(Ptr != NULL&&Ptr->next != NULL) qPtr = delete_After(Ptr); return qPtr; }liklistnode *delete_i(liklistnode *head,int i) { liklistnode *Ptr,*qPtr = NULL; Ptr = get(head,i-1); if(Ptr != NULL&&Ptr->next != NULL) qPtr = delete_After(Ptr); return qPtr; }
THE END
暂无评论内容