标签:new col 输入 增删改 == 数据 使用 div 理解
最近复习了线性表,对链表这一部分遗忘最大,所以手动实现一下加深理解,附上C++代码:
#include <iostream> using namespace std; typedef struct LNode //定义一个结构体作为链表结构,有指针域和数据 { int data; struct LNode* next; }LNode,*LinkList; //将 struct LNode重命名为LinkList方便使用 void dis(LinkList l) //输出列表 { while (l->next != NULL) { l = l->next; cout << " " << l->data; } cout << endl; } LinkList insert(LinkList& l,int x) //头插 { LNode* s = (LNode*)malloc(sizeof(LNode)); s->data = x; s->next = l->next; l->next = s; return l; } int getNumber(LinkList l, int x)//按照值查找结点序号 { int i = 0; while (l != NULL) { i++; if (l->data == x) { cout << "find x=" << x<< " ,num=" << i-1<< endl; break; } l = l->next; } return i; } LNode* getElement(LinkList l, int no)//按照序号查找结点 { LNode*s = l->next; int j = 1; while (s->next != NULL && j < no) { s = s->next; j++; } return s; } void delect(LinkList &l, int no)//删除指定序号的节点 { LNode* s = getElement(l, no - 1); LNode* p; p = s->next; s->next = p->next; cout << "delect " << p->data << " success" << endl; free(p); } int main() //依次实现增,查,查,删 { LinkList l; LNode* s; int x; l = (LinkList)malloc(sizeof(LNode)); //head l->next = NULL; cin >> x; do { s = (LNode*)malloc(sizeof(LNode)); s->data = x; s->next = l->next; l->next = s; cout << "new " << s->data << endl; cin >> x; } while (x>0); //输入负数后停止 dis(l); l = insert(l, 100); dis(l); cout << "no." << 2 << " is " << getElement(l, 2)->data<< endl; getNumber(l, 1); delect(l, 2); dis(l); return 0; }
标签:new col 输入 增删改 == 数据 使用 div 理解
原文地址:https://www.cnblogs.com/murenma/p/13258605.html